<div class="t...">
最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • css absolute与relative

    正文概述 掘金(大招哥)   2021-01-15   410

    用绝对定位和相对定位的时候有时候效果总跟自己预想的不一样,在此做个小记录。

    首先建两个div一个为父一个为子

    <div class="test1">

    <div class="test2"></div>

    </div>

    .test1{ height: 300px; width: 300px; background-color: #409eff; }

    .test2{

    height: 50px; width: 50px; background-color: brown; margin-top: 50px; margin-left: 50px;

    }

    效果图:

    css absolute与relative

    这里发现test2设置的margin-top使父元素向下偏移了,这是因为如果父子元素上边重合就会出现这种情况,只需要在父元素顶上加个padding-top或者border或者其他的别让他俩重合就行,在test1的样式里加 padding-top: 1px; box-sizing: border-box;其中box-sizing: border-box;是为了将padding增加的尺寸限制住,平时设置padding时如果已经规定宽高那么padding会使宽高加出来,用这个可以避免,很方便。改好之后效果图跟我们想的一样了:

    css absolute与relative

    为了方便体现给父元素也加上上左50的外边距

    然后先来给子元素加绝对定位.test2{position: absolute;},发现没有变化,因为top, left, right, bottom不设置一个不会激活absolute。

    然后

    .test1{ height: 300px;  
           width: 300px;  
          margin-top: 50px; margin-left: 50px; 
          background-color: #409eff;  
        padding-top: 1px;  box-sizing: border-box; 
    } 
     .test2{ height: 50px;
    	   width: 50px;  background-color: brown;
           /* margin-top: 50px; margin-left: 50px; */ 
         position: absolute;  top:0px; 
     }
    

    效果:css absolute与relative

    当给top设为0子元素并没有在父元素内,这是因为绝对定位使子元素脱离了文档流并且它的父元素没有加定位,这时他会找上一级有定位的元素来做参照,如果没有就以页面为参照了,可以看到我们将test2的margin注释了,当我们打开注释发现margin依然起作用,经过我的测试发现这时的margin可以记为如果该方向上设置了比如top那么这时的margin-top可以理解为在top完成后的位置上进行了一次margin-top,而该方向如果没有top这时的margin-top与没有定位时效果相同。当然实际使用用了绝对定位后也没必要再用margin。注意绝对定位的四个方向只会以有定位的父元素祖父元素作参考。

    relative是以自身为参照物,而且虽然仿佛脱离了文档流但原先的地方仍然占位,看看代码:

    <div class="test1">

    <div class="test2"></div>

    <div class="test3"></div>

    </div>

    .test1{ height: 300px; width: 300px; margin-top: 50px; margin-left: 50px; background-color: #409eff; padding-top: 1px; box-sizing: border-box; }

    .test2{ height: 30px; width: 50px; background-color: brown; position: relative; top:50px; } .test3{ height: 150px; width: 50px; background-color: chartreuse; }

    css absolute与relative

    这两个定位经常一块使用,一定要细心,先放外层再放内层,如果有跟自己预期不一样的显示先要找到哪个定位出了问题。以后再踩到这两个定位的坑再来补充。


    起源地下载网 » css absolute与relative

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元