一、定位
- 静态定位
- 绝对定位
- 相对定位
- 固定定位
- 粘滞定位
1、静态定位
1、默认值,当我们没有指定定位方式的时候,这时默认的定位方式就是static,也就是按照文档的书写布局自动分配在一个合适的地方,这种定位方式用margin来改变位置,对left、top、z-index等设置值无效,这种定位不脱离文档流
2、相对定位
相对定位的特点: 1、相对于自身原来的位置进行移动(移动的位置参考自己原来的) 2、原来在标准流中的位置继续占有,后面的盒子仍然以标准流的方式对待它。(不脱标,继续保留原来的位置) 因此,相对定位没有脱离标准流,它是典型的给绝对定位当爹的。。。
3、绝对定位
绝对定位的特点:
1、如果没有祖先元素或者祖先元素没有定位,则 以浏览器为准定位(Document文档)
2、如果祖先元素有定位(相对、绝对、固定),则以最近一级有定位的祖先元素为参考进行移动
3、绝对定位不再占有原先的位置(脱离标准流)
4、固定定位
固定定位的特点:
- 以浏览器的可视窗口为参照一定元素
- 跟父元素没有任何关系
- 不随滚动移动
- 固定定位不再占有原来的位置。
固定定位也是一种特殊的绝对定位
5、粘性定位
5.1定义:
粘性定位可以看成是固定定位与相对定位的混合。sticky 粘性定位的特点:
- 以浏览器的可视窗口为参照来移动元素(固定定位的特点)
- 粘性定位占有原来的位置(相对定位的特点)
- 必须至少添加top、left、right、bottom其中一个才生效。
5.2定位层叠顺序z-index
- 数值可以是正整数、负整数、0,默认是auto,数值越大,盒子越靠上。
- 如果属性值相同,则按照书写顺序,后来居上
- 数字后面不能加单位(重点)
- 只有定位的盒子才有z-index属性(重点)
5.3定位特殊特性
1、绝对定位和固定定位也和浮动类似:
- 行内元素添加绝对定位或者固定定位,可直接设置高度与宽度。
- 块级元素设置
绝对定位或者固定定位,如果_不给高度或者宽度_,默认是内容的大小。
2、脱标的盒子不会发生外边距塌陷: 浮动元素,绝对定位(固定定位)元素都不会触发外边距合并的问题