html 元素位置属性是,定位属性在元素中的层级关系

在现在项目产品的前端开发中随着交互的增多,再加上html结构的语义化要求,元素的层级关系越发重要了,经常页面会出现页面某些元素会被其他元素遮盖,很多时候我们通过position:relative或position:absolute,及z-index值来改变元素的层级,但是z-index过多或其值如果没有充分考虑的话,元素的层级关系会非常复杂。我这里只总结了position:relative和position:absolute在兄弟元素中的一些层级关系,有遗漏或者不足的地方,欢迎大家留言补充和斧正。

注意:这里把position : static这个默认的定位属性值同意认为没有定位,position:relative、position:absolute和position:fixed都认为是有定位 。position:fixed在ie6下未支持,所以本位不做实例,在其他浏览器下同样适用。

一、在没有定位属性的兄弟元素中,一般在html结构下面的元素层级高于结构上面的元素。

可能表达不清楚,看一段代码吧:

[code=”html”]

结构上面的元素:width:400px; height:200px;

这里黑色的可见高度是150px,还有50px被红色的元素遮罩了(margin-top:-50px)。

结构下面的元素:width:500px; height:100px;

[/code]

如图显示:

a2095c879fe8ecf50e8ea335c346bcd9.png

=====================分割线===========================

在了看一个类似的例子:

[code=”html”]

结构上面的元素:width:400px; height:200px;

这里黑色的可见高度加起来是100px,还有100px被红色的元素遮罩了。

结构下面的元素:width:500px; height:100px;

[/code]

如图显示:

da0ef5739d26ad97d441d92dbcc17619.png

这两个例子充分说明了一般情况下:没有定位的兄弟元素中,在html结构下面的元素层级高于结构上面的元素。

二,兄弟元素中有定位属性的元素层级高于没有这两个属性的其他兄弟元素。

看一个在结构上面元素上加position:absolute例子,这个可能大家很常用:

[code=”html”]

结构上面的元素:width:400px; height:200px;

这里黑色的可见高度加起来是200px,红色的元素被遮罩了。

结构下面的元素:width:500px; height:100px;

[/code]

如图显示:

d79c297b1a3488cb53fa42645106ffad.png

=====================分割线===========================

看一个在结构上面元素上加position:relative例子,这个可以用来做很多事情,特别是选项效果,还有元素不想脱离文档流的时候:

[code=”html”]

结构上面的元素:width:400px; height:200px;

这里黑色的可见高度加起来是200px,红色的元素的50高度被遮罩了。

结构下面的元素:width:500px; height:100px;

[/code]

如图显示:

434e90124cbcc3677b4c46f4f8817e82.png

三、兄弟元素中有position:relative和position:absolute定位属性的元素,结构下面的元素层级高于结构上面的元素,但是有z-index设置时,z-index值大者居上。

看一个在例子:

[code=”html”]

[/code]

四、非兄弟元素,任意一者或其祖元素拥有动态定位时,同时各自向上寻找动态定位的祖元素,并分别从中拿出具备最高级别的祖元素(或其本身)进行比较。

1.子元素的z-index无论多大,父元素大者居上,如图:

06a80ecc417c347273978f6adcacac24.gif

2.父元素居下,子元素也可以居上,如图:

198860873d130959e2dcc7db84841f1f.gif

或者看这段代码:

[code=”html”]

这个在最上层

[/code]

3.结合以上两点,看个更加复杂的,如图:

1b55d168343c0f6547a240ac03dd13d3.gif

有遗漏或者不足的地方,欢迎大家留言补充和斧正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值