在实际开发页面布局时,运用position,对定位的块级元素的嵌套的效果总是不太理解,这里做了几个测试
一般的在w3c中我们可以很容易的获取定义:
static : 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
fixed :生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
inherit :规定应该从父元素继承 position 属性的值。
立即学习“前端免费学习笔记(深入)”;
absolute : 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
relative : 生成相对定位的元素,相对于其正常位置进行定位。因此,”left:20″ 会向元素的 LEFT 位置添加 20 像素。
总的来说 :
static呢,就是正常的文档流顺序,默认的,相当于没有定位!
fixed呢, 就是相对于浏览器窗口,就是你滚动条怎么滚动,他还是那个位置,就想是 “粘” 在窗口上了!
inherit呢, 就是从父元素继承 position 属性的值,
absolute呢,是脱离文档流的原来的位置是不继续占据了,如果他的父级元素中有已经定位了的不管是absolute的还是relative,它都会相对于他的父级元素来定位,如果他的父级元素中没有定位了的那么它就是相对于body来定位的。也就是说absolute的绝对是有参照物的!
relative呢,是不会脱离文档流的原来的位置也就继续占据了,它是只相对于自身原来的位置来定位的!
前三个是很容易理解的,对于absolute和relative的结合使用,做了几个测试
测试(absolute和relative)
1.单独的absolute和relative
2.relative中的relative,absolute中的relative
3.absolute中的absolute,relative中的absolute
position -- absolute -- relative .test-a{position: absolute;top:20px;left:60px;width:200px;height: 100px;background: red;}.test{width:400px;height: 100px;background: green;}.test-r{position:relative;top:50px;left:130px;background: yellow;width:160px;height: 180px;}.test-rr{ position: relative; top: 20px; left: 100px; width: 600px; height: 300px; background: blue;}.test-aa{position: absolute; top: 24px; left: 34px; background: orange;}.test-aaa{position: absolute; top: 24px; left: 34px; width:400px; height:200px; background: #18E457;}.test-aaaa{position: absolute; top: 124px; left: 134px; width:400px; height:200px; background: yellow;}.test-rrr{position: relative; top: 24px; left: 34px; width:400px; height:200px; background: yellow;}.test-rrr{position: relative; top: 124px; left: 134px; width:400px; height:200px; background: red;}.test-r-a{position: absolute; top: 124px; left: 134px; width:800px; height:800px; background: yellow;}.test-a-r{position: relative; top: 124px; left: 134px; width:700px; height:700px; background: red;}absolute分割relative结合使用
parentNode的position不是relative或absolute,那absolute的绝对对象是针对body的 parentNode的position 是relative或absolute,那absolute的绝对对象是针对parentNode的 也就是说absolute的绝对是有参照Node的
absolute外的relativerelative内的absolute,,,里面这个div是相对外面那个div定位的absolute外的absoluteabsolute内的absolute,,,,,,,,里面这个div是相对外面那个div定位的relative外的relativerelative内的relative,,,,,,,,里面这个div是相对原来位置定位的relative外的absoluterelative内的absolute,,,里面这个div是相对原来位置定位的
登录后复制
其实很多时候,网上的经验,很多很杂,自己实践一下,才能自己真正理解
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3107979.html