开始之前先了解一个概念:
文档流(标准流):将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流.(自己的理解是从头到尾按照文档的顺序,该在什么位置就在什么位置,也可以按照上面的意思理解,自上而下,自左到右的顺序)
注意点:在标准流中,内容的高度可以撑起父元素的高度
相对定位
1.相对定位不会脱离标准流
2.在相对定位中同一个方向上的定位属性只能使用一个(使用了top就别使用bottom)
3.由于相对定位不脱离标准流,所以在相对定位中是区分块级元素/行内元素/行内块级元素
4.给相对定位的元素设置margin/padding属性会影响标准流的布局(设置给定位前的元素)
应用场景:
1.用于对元素进行微调
2.配合绝对定位来使用
绝对定位
1.绝对定位的元素是脱离标准流的,不会占用标准流中的空间
2.绝对定位的元素不区分块级元素/行内元素/行内块级元素(所有绝对定位的元素都可以设置宽高)
3.默认情况下绝对定位是相对于body而言的
注意点:
如果一个绝对定位元素有定位流的祖先元素(相对定位的祖先元素、绝对定位的祖先元素、固定定位的祖先元素),那么这个绝对定位的元素就会以离自己最近的定位流的祖先元素作为参考点
固定定位
1.固定定位会脱离标准流,不会占用标准流中的空间
2.固定定位的元素是不区分块级元素/行内元素/行内块级元素(所有的元素都可以设置宽高)