CSS position

it2024-07-29  40

position

子绝父相

position 属性的五个值:

static 静态定位relative 相对定位fixed 固定定位absolute 绝对定位sticky 粘性定位

元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定position属性。他们也有不同的工作方式,这取决于定位方法。

fixed 定位

元素的位置相对于浏览器窗口是固定位置。

即使窗口是滚动的它也不会移动:

应用: 小广告,回到顶部,固定导航栏

relative 定位

相对定位元素的定位是相对其正常位置。

相对定位:不脱离标准文档流,可以调整元素

参考点:

以原来的位置为参考点

原来在标准流的位置继续占有,后面的盒子仍然以标准流的方式对待它

absolute 定位

绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于html

特点:1.脱离标准文档流,不在页面占位置

2.压盖现象 层级提高

参考点:

单独给一个盒子设置绝对定位,以根元素页面左上角为参考点

重点:

1.如果没有祖先元素或者祖先元素没有定位,则以浏览器为准定位(document文档)

2.如果父元素有定位(相对,绝对,固定),则以最近一级有定位父元素为参考点移动位置

3.绝定定位不再占有原先的位置(脱标)

加了绝对定位的盒子不能通过margin:0 auto 水平居中

绝对定位的元素top、left设为50%时,是已左上角为原点的

所以只要再使用margin属性添加负值补偿回来即可

sticky 定位

粘性定位可以被认为是相对定位和固定定位的混合

粘性定位的特点:

1.以浏览器的可视窗口为参照点移动元素(固定定位特点)

2.粘性定位占有原先的位置(相对定位特点)

3.必须添加top、left、right、bottom 其中一个才有效

定位特殊特性:

1.行内元素添加绝对或者固定定位,可以直接设置高度和宽度

2.块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小

3.绝对定位(固定定位)会完全压住盒子

浮动元素不同,只会压住它下面标准流的盒子,但是不会压住下面标准盒子里面的文字

但是绝对定位(固定定位)会压住下面标准流所有的内容

浮动之所以不会压住文字,以内浮动产生的目的最初是为了做文字环绕效果的,文字会围绕浮动元素

最新回复(0)