相对定位(Relative positioning)

当一个盒根据常规流或者浮动摆放好后,它可能会相对于该位置移动,这叫相对定位。css

相对定位的盒保持它在常规流中的大小,包括换行和空格都会原样保留浏览器

relative与absolute,fixed

relative与absolute的关系wordpress

在例1中,absolute元素的top/left:0的定位在浏览器窗口的左上角,而设置了relative父元素的absolute元素的top/left:0relative元素的左上角
在例2中,relative元素与absolute元素同级的时候,z-index:2,后面的覆盖前面的元素.当relative元素与absolute元素嵌套时,relative元素的z-index决定层叠顺序,absolute元素z-index失效
在例3中,普通div元素设置的overflow:hidden对于子元素是absolute的元素无效,而设置relativediv元素设置overflow:hidden能够在子元素absolute中生效code

也就是说relative能够:图片

  • 限制left/top/right/bottom定位get

  • 限制z-index层级it

  • 限制在overflow下失效的问题io

而对于fixed,relative只能限制z-index层级margin

relative与定位

relative与自身的定位top

在例1中,设置left/top:0后,relative元素不会发生任何变化,而设置了left/top:100px后,元素相对于它自己向右和向下分别偏移了100px

在例2中,第二个图片position: relative;left: -999em;,虽然它看不见了,可是它的位置保留了下来

在例3中,一个relative元素同时设置top/bottom:100px或者left/right:100px,起做用的是left:100px,top:100px

relative与z-index

relative与z-index关系

在例1中,设置了relative的元素层级要比普通元素高
在例2中,relative元素与absolute元素同级的时候,z-index:2,后面的覆盖前面的元素.当relative元素与absolute元素嵌套时,relative元素的z-index决定层叠顺序,absolute元素z-index失效
在例3中,z-index:autoz-index:1优先级小,至于子元素的重叠,须要计算子元素的z-order决定

relative最小化影响原则

  1. 在能够单独使用absolute解决问题的时候,不要使用relative,若有误差,能够配合margin使用

  2. 必定要使用relative的时候,要保证做用范围最小化

relative相关参考
CSS 相对/绝对(relative/absolute)定位系列(四)

相关文章
相关标签/搜索