Position
定位的简介:定位是一种更加高级的布局手段 通过定位可以将元素摆放在任意位置可以用position属性来设置定位
static 默认值 元素是静止的没有开启定位
relative:开启元素相对定位
absolute:开启元素绝对定位
fixed:开启元素固定定位
sticky:开启元素粘滞定位
相对定位
当元素的position属性设置为relative则开启了元素的相对定位
相对定位是参照于元素在文档流中的位置进行定位的
相对定位特点:
元素开启相对定位之后 不设置偏移量元素不会发生任何变化
偏移量(offset):
开启定位后可以通过偏移量来设置元素的位置
top bottom left right
定位元素与定位位置上边的距离
定位元素和定位位置下边的距离
垂直方向由top bottom两个属性来控制
通常情况只会使用其一
水平方向由left和right两个属性来控制
相对定位会提高元素的层级
相对定位不会使元素脱离文档流
不会改变元素的性质 块还是块 行内还是行内
绝对定位
当元素position设置为absolute 开启元素的绝对定位
绝对定位的特点:
1.如果不设置偏移量元素的位置不会发生变化
2.开启绝对定位后,元素会从文档流中脱离
3.绝对定位会改变元素的性质 行内变成块 块的宽高被内容撑开
4.绝对定位会使元素提升一个层级
5.绝对定位元素是相对于其包含块进行定位的
包含块:正常情况下就是离当前元素最近的祖先块元素
绝对定位的包含块:
包含块就是离他最近的开启了定位的祖先元素
如果所有的祖先元素都没有开启定位则根元素就是他的包含块(html页面)
固定定位
将元素的position属性设置为fixed则开启元素固定定位
固定定位也是一种绝对定位 所以固定定位的大部分特点都和绝对定位一样
唯一不同的是 固定定位永远参照浏览器的视口进行定位
固定定位的元素不会随网页的滚动条滚动
粘滞定位
sticky开启粘滞定位
与相对定位特点基本一致
不同的是粘滞定位可以在元素到达某个位置时将其固定
绝对定位元素的位置:
开启绝对定位后
水平方向的布局等式需要添加left和right两个值
当发生过度约束 如果9个值没有auto则自动调整right值以使等式满足
可设置auto的值
margin width left right
因为默认left和right的值默认是auto 所以如果不知道left和right 则等式不满足时
会自动调整两个值
垂直方向布局的等式也必须要满足 等式
元素的层级
对于开启定位的元素 可以通过z-index属性来指定元素的层级
z-index需要一个整数作为参数 值越大元素的层级越高
元素层级越高 越优先显示
如果元素的层级一样则优先显示靠下的元素
祖先元素的层级再高也不会盖住后代元素