关于position定位中的几个注意点
2016-12-01 19:33
134 查看
在CSS中我们会用到position来进行布局,常用的就是三种relative,absolute,fixed
relative就是我们常说的相对定位,相对于在正常文档流中的位置进行定位,它不会脱离正常的文档流,所以在进行定位以后,之前的位置也会保持占有状态。
我们可以看到文字和黄色div之间有很大的空隙,这个空隙就是因为还占据着原来的位置导致。由于没有脱离文档流,在定位为relative的元素中设置width:100%时,实际上就是父元素的宽度。
absolute:相对于离他最近且position的值不为static的元素进行定位(或者根元素),脱离了文档流。当我们设置width:100%时,这个100%也是根据离他最近且position的值不为static的元素(或者根元素)的宽度进行计算,而不是父元素。
我们可以看到并不是根据父元素的宽度来进行计算。当然overflow也是相对于离他最近且position的值不为static的元素(或者根元素)的宽度进行计算。
fixed:是相对于视口进行定位。所以我们设置width:100%时相对于浏览器的可见宽度。就相当于设置height:100vh。也是脱离文档流的。所以overflow也将是相对于可见窗口而言。
relative就是我们常说的相对定位,相对于在正常文档流中的位置进行定位,它不会脱离正常的文档流,所以在进行定位以后,之前的位置也会保持占有状态。
<div class="test"> 这是一行文字,这是一行文字 <div style="width: 200px;height: 50px;background: yellow;position: relative;top: 50px;"></div> </div>
我们可以看到文字和黄色div之间有很大的空隙,这个空隙就是因为还占据着原来的位置导致。由于没有脱离文档流,在定位为relative的元素中设置width:100%时,实际上就是父元素的宽度。
absolute:相对于离他最近且position的值不为static的元素进行定位(或者根元素),脱离了文档流。当我们设置width:100%时,这个100%也是根据离他最近且position的值不为static的元素(或者根元素)的宽度进行计算,而不是父元素。
<div class="wrap"> <div class="container"> <div class="main"> </div> </div> </div>
.wrap{ width: 200px; height: 100px; position: relative; } .container{ width: 300px; height: 50px; background: red; } .main{ position: absolute; width: 100%; height: 100%; background: yellow; }
我们可以看到并不是根据父元素的宽度来进行计算。当然overflow也是相对于离他最近且position的值不为static的元素(或者根元素)的宽度进行计算。
fixed:是相对于视口进行定位。所以我们设置width:100%时相对于浏览器的可见宽度。就相当于设置height:100vh。也是脱离文档流的。所以overflow也将是相对于可见窗口而言。
相关文章推荐
- 关于抽象类的几个注意点
- 关于ie 对position定位后的z-index问题
- CSS中关于定位position的问题,blockquote,div,span三个的区别
- html5-css:关于float,position的定位问题,文档流的解析
- 关于重定向的几个注意点
- 关于前端代码重构注意的几个点
- 【学习笔记】汇编:关于几个标志位的注意点
- 关于linux下C++开发的几个注意事项
- 关于创建Immutable对象时需要注意的几个问题
- flex开发中关于内存释放几个注意的地方
- 关于写Windows service程序启动和停止需要注意的几个地方
- 杭州4--29 关于sqltest_go和sqltest_beego的几个注意点
- 关于Portal压力测试需要注意的几个问题
- 关于C51的中断函数要注意的几个问题
- 关于循环语句中的几个需要注意的地方
- 关于linux和win7双系统的安装几个注意的地方
- 关于mysql中orderby的几个注意事项
- 关于“重定位”及其相关的几个概念
- 关于C51的中断函数要注意的几个问题
- 关于百度地图js api的getCurrentPosition定位不准确的解决方法