定位
普通流
普通流就是 html 文档中的元素如块级元素、行内元素依据他们的显
示属性按照在文档中的先后次序依次显示。是块级元素就占一行或多
行,是行内元素就和其他元素共处一行,没什么好说的,该咋显示咋
显示,一个萝卜一个坑
了解流的概念:
文档流是相对于盒子模型讲的
文本流是相对于文子段落讲的
定位机制
CSS 有三种基本的定位机制:普通流、浮动和绝对定位。 除非专门
指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的
位置由元素在 (X)HTML 中的位置决定。
定位
默认值为 static。可应用于所有元素。 (position:static) static
元素框正常生成:块级元素生成一个矩形框,作为文档流的一部分,
行内元素则会创建一个或多个行框,置于其父元素中。
相对定位(position:relative)
relative
- 相对定位,如果没有偏移量(left/right/top/bottom)就是正
常显示; - 根据原来的位置进行偏移
- 不会使元素脱离文本流
绝对定位 (position:absolute)
absolute:
1.如果使用绝对定位,有定位祖先元素就相对于定位祖先元素发生偏
移,没有定位祖先元素就会相对于整个文档发生偏移(绝对 相对 固
定)
2.使元素脱离文档流和文本流
固定定位 (position:fixed)
1.相对于整个窗口进行定位,不会受滚动条影响
2.使元素脱离文档流和文本流
粘性定位
sticky:(这是 css3 新增的属性值)粘性定位。最初会被当作是
relative,相对于原来的位置进行偏移;一旦超过一定阈值之后,会
被当成 fixed 定位,相对于视口进行定位
使用条件:
1、父元素不能 overflow:hidden 或者 overflow:auto 属性。
2、必须指定 top、bottom、left、right4 个值之一,否则只会处于相对定位
3、父元素的高度不能低于 sticky 元素的高度
4、sticky 元素仅在其父元素内生效
z-index 设置元素的堆叠顺序。
z-index 的使用条件就是必须在使用了定位之后才可以生效。