通过position属性来设置元素的定位
- 可选值:
- static:默认值,元素没有开启定位
- relative:开启元素的相对定位
- absolute:开启元素的绝对定位
- fixed:开启元素的固定定位(也是绝对定位的一种)
说明:
- 当元素的position:relative时,开启元素相对定位
- 当开启了元素的相对定位以后,而不设置偏移量时,元素不会发生任何变化
- 相对定位是相对于元素在文档流中原来的位置进行定位
- .相对定位的元素不会脱离文档流
- 相对定位会使元素提升一个层级
- 相对定位不会改变元素的性质,块还是块,内联还是内联
- 当开启了元素的定位(position属性值是一个非static的值)时,可以通过left right top bottom四个属性来设置元素的偏移量
- left:元素相对于其定位位置的左侧偏移量
- right:元素相对于其定位位置的右侧偏移量
- top:元素相对于其定位位置的上边的偏移量
- bottom:元素相对于其定位位置下边的偏移量
- 绝对定位:position:absolute
- 开启绝对定位,会使元素脱离文档流
- 开启绝对定位以后,如果不设置偏移量,则元素的位置不会发生变化
- .绝对定位是相对于离他最近的开启了定位的祖先元素进行定位的(一般情况,开启了子元素的绝对定位都会同时开启父元素的相对定位,子绝父相)
- 如果所有的祖先元素都没有开启定位,则会相对于浏览器窗口进行定位
- .绝对定位会使元素提升一个层级
- 绝对定位会改变元素的性质,行元素变成块元素,
- 块元素的宽度和高度默认都被内容撑开
- 固定定位:position:fixed
- 固定定位也是一种绝对定位,它的大部分特点都和绝对定位一样
- 固定定位永远都会相对于浏览器窗口进行定位
- 固定定位会固定在浏览器窗口某个位置,不会随滚动条滚动
技巧:
在写position:absolute的left和top不知道参数写多少时,可以先设置top:0px,left:0px进行测试,查看此时的元素是相对于浏览器还是某个元素进行相对定位的。