当一个盒根据常规流或者浮动摆放好后,它可能会相对于该位置移动,这叫相对定位。css
相对定位的盒保持它在常规流中的大小,包括换行和空格都会原样保留浏览器
relative与absolute的关系wordpress
在例1中,absolute
元素的top/left:0
的定位在浏览器窗口的左上角,而设置了relative
父元素的absolute
元素的top/left:0
在relative
元素的左上角
在例2中,relative
元素与absolute
元素同级的时候,z-index:2
,后面的覆盖前面的元素.当relative
元素与absolute
元素嵌套时,relative
元素的z-index
决定层叠顺序,absolute
元素z-index
失效
在例3中,普通div
元素设置的overflow:hidden
对于子元素是absolute
的元素无效,而设置relative
的div
元素设置overflow:hidden
能够在子元素absolute
中生效code
也就是说relative
能够:图片
限制left/top/right/bottom定位get
限制z-index
层级it
限制在overflow
下失效的问题io
而对于fixed
,relative
只能限制z-index
层级margin
在例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
在例1中,设置了relative
的元素层级要比普通元素高
在例2中,relative
元素与absolute
元素同级的时候,z-index:2
,后面的覆盖前面的元素.当relative
元素与absolute
元素嵌套时,relative
元素的z-index
决定层叠顺序,absolute
元素z-index
失效
在例3中,z-index:auto
比z-index:1
优先级小,至于子元素的重叠,须要计算子元素的z-order
决定
在能够单独使用absolute
解决问题的时候,不要使用relative
,若有误差,能够配合margin
使用
必定要使用relative
的时候,要保证做用范围最小化