当一个盒根据常规流或者浮动摆放好后,它可能会相对于该位置移动,这叫相对定位。
相对定位的盒保持它在常规流中的大小,包括换行和空格都会原样保留
relative与absolute,fixed
在例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
中生效
也就是说relative
可以:
限制left/top/right/bottom定位
限制
z-index
层级限制在
overflow
下失效的问题
而对于fixed
,relative
只能限制z-index
层级
relative与定位
在例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
在例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
决定
relative最小化影响原则
在可以单独使用
absolute
解决问题的时候,不要使用relative
,如有偏差,可以配合margin
使用一定要使用
relative
的时候,要保证作用范围最小化
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。