通过属性position属性可以设置相对定位和绝对定位
当开启元素的定位之后可以通过属性值
left
right
top
bottom
设置元素的偏移量
position属性可选值有:
static:默认值,元素没有开启定位
- 当元素的position可选值为static时元素没有开启定位
relative:开启元素的相对定位
- 相对定位是元素相对于原来自身的位置进行偏移
- 相对定位的元素不会脱离原来的文档流,原来占据的位置在元素偏移后依然是这个元素的
- 相对定位会让元素提升一个层级(产生偏移的元素能覆盖在其他元素上面,这就是所谓的提升一个层级)
- 通常只需要使用两个定位属性就可以对元素定位了
- 相对定位不会改变元素性质,块元素还是块元素,内联元素还是内联元素
absolute:开启元素的绝对定位
- 开启绝对定位会让元素脱离文档流
- 开启绝对定位后如果不设置偏移量,元素不会发生偏移
- 绝对定位是相对于离他最近的开启了定位的祖先元素进行定位的(一般情况下,开启了子元素的绝对定位都会开启父元素的相对定位),如果所有的祖先元素都没有开启定位,则相对于浏览器窗口左上角进行偏移
- 相对定位会让元素提升一个层级(产生偏移的元素能覆盖在其他元素上面,这就是所谓的提升一个层级)
- 开启绝对定位会让元素脱离文档流,内联元素变为块元素,块元素的宽度与高度都默认被内容撑开
fixed:开启元素的固定定位(也是绝对定位的一种)
- fixed绝大部分属性和relative相同的,唯一不同的是。固定定位永远相对于浏览器的窗口进行定位
- 固定定位会固定在浏览器窗口的某个位置。不会随滚动条的滚动而发生位置上的变化
- 绝对定位会随滚动条的滚动而发生变化
- IE6不支持固定定位