CSS定位
1. 默认值 (static)
- 没有定位,元素出现在正常的流中
- 会忽略 top, bottom, left, right 或者 z-index 声明
2. 相对定位(relative)
- 相对定位,就是微调元素位置的。让元素相对自己原来的位置,进行位置调整
- 相对定位不脱标,真实位置是在老家,只不过影子出去了,可以到处飘
- 使用场景:
- 微调元素
- 做绝对定位的参考,子绝父相
3. 绝对定位 (absolute)
- 绝对定位比相对定位更灵活
- 脱离标准文档流,所有标准文档流的性质,绝对定位之后都不遵守了(绝对定位之后,标签就不区分所谓的行内元素、块级元素了,不需要 display:block; 就可以设置宽、高了)
- 参考点
- 绝对定位的参考点,如果用top描述,那么定位参考点就是页面的左上角,而不是浏览器的左上角
- 如果用bottom描述,那么就是浏览器首屏窗口尺寸,对应的页面的左下角
- 以盒子为参考点
- 一个绝对定位的元素,如果父辈元素中出现了也定位了的元素(static除外),那么将以父辈这个元素,为参考点。
- 要听最近的已经定位的祖先元素的,不一定是父亲,可能是爷爷。
- 不一定是相对定位,任何定位,都可以作为参考点。子绝父绝、子绝父相、子绝父固,都是可以给儿子定位的。但是,工程上子绝父绝,没有一个盒子在标准流里面了,所以页面就不稳固,没有任何实战用途。工程上,“子绝父相”才有意义,父亲没有脱标,儿子脱标在父亲的范围里面移动。
- 绝对定位的儿子,无视参考的那个盒子的padding。
- 绝对定位的盒子居中问题
绝对定位之后,所有标准文档流的规则,都不适用了。所以margin:0 auto;
失效。可使用以下方式使之居中。1
2left: 50%;
margin-left: 负的盒子宽度的一半。
4. 固定定位 (fixed)
- 固定定位,就是相对浏览器窗口定位。无论页面如何滚动,这个盒子显示的位置都不变。
- 脱标
5. 粘性定位 (sticky)
- 基于用户滚动的位置定位
- 它的行为就像
position:relative;
,而当页面滚动超出目标区域时,它的表现就像position:fixed;
,它会固定在目标位置 - 目前还是实验属性
- 常见的一种使用场景是绝对底部(Sticky Footer)
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
扫描二维码,分享此文章