CSS堆叠顺序

html-css017

CSS堆叠顺序,第1张

层叠上下文,英文称作”stacking context”. 是HTML中的一个三维的概念。如果一个元素含有层叠上下文,我们可以理解为这个元素在z轴上就“高人一等”。

z轴通常指用户眼睛到屏幕的一条直线。所有的元素都有层叠顺序。

首先,我们创建一个div框。

当我们试着去改变background: black,我们会发现由于背景颜色盖在边框之上,边框的颜色会有所改变。

我们试着给这个div中加个内联元素,会发现,内联元素比那个没有因为背景是黑色,而隐藏掉。

内联元素是在background之上的,所以不会被背景色覆盖掉。

接着,我们在div中再创建一个内联元素

我们会发现,子元素的背景色覆盖掉了父元素的背景色。然后,我们给子元素加个margin-top,子元素中的内联元素会将父元素中的文字覆盖掉。

我们继续添加一个浮动元素,同时稍微修改下子元素的样式,方便我们观察。

给float元素加一个margin,我们可以看到,蓝色的float元素,覆盖在div之上。

我们继续添加两个div元素

此时,我们可以看到,后出现的元素会覆盖在先出现的元素之上,但是,浮动元素仍然在顶端。

我们给两个元素都加上position。

这时,两个div都在float元素的上层。后出现的橙色元素暂时在最上面。

我们接着给.relative1加上一个z-index

此时.relative1就在最上层。但是我们给.child加上z-index并没有效果,因为要给定位元素加上z-index(不为auto)才能触发堆叠上下文。

总结下来就是下图所示(原谅我盗图):

css层叠图片代码:

<pre name="code" class="html"><div style="position: relative">//这个层为外面的父层,只需设置相对位置样式即可

<div style="position: absolute">//这个为里面要叠加的层,只需设置绝对样式

<img src="img/sunshuai.jpg"/>//这个为层里面的内容图片

</div>

<img src="20110110/871_129391305700000000.jpg"/>//这个为父层内容

</div>

或者:

<div style="position:absolutez-index:1left:10pxtop:10px">

<img src="a.gif" width="100" height="100"></div>

<div style="position:absolutez-index:2left:60pxtop:60px">

<img src="b.gif" width="100" height="100"></div>

扩展资料:

CSS 中重要的叠加层叠概念:

1. 层叠上下文 (Stacking Context)

层叠上下文 (堆叠上下文, Stacking

2. 层叠等级 (Stacking Level)

层叠等级 (层叠水平, Stacking Level) 决定了同一个层叠上下文中元素在z轴上的显示顺序的概念,普通元素的层叠等级优先由其所在的层叠上下文决定。层叠等级的比较只有在同一个层叠上下文元素中才有意义。

在同一个层叠上下文中,层叠等级描述定义的是该层叠上下文中的元素在Z轴上的上下顺序。

3. 层叠顺序 (Stacking Order)

层叠顺序 (层叠次序, 堆叠顺序, Stacking Order) 描述的是元素在同一个层叠上下文中的顺序规则,从层叠的底部开始,共有七种层叠顺序:

(1)背景和边框:形成层叠上下文的元素的背景和边框。

(2)负z-index值:层叠上下文内有着负z-index值的定位子元素,负的越大层叠等级越低;

(3)块级盒:文档流中块级、非定位子元素;

(4)浮动盒:非定位浮动元素;

(5)行内盒:文档流中行内、非定位子元素;

(6)z-index: 0:z-index为0或auto的定位元素, 这些元素形成了新的层叠上下文;

(7)正z-index值:z-index 为正的定位元素,正的越大层叠等级越高;

同一个层叠顺序的元素按照在HTML里出现的顺序层叠;第7级顺序的元素会显示在之前顺序元素的上方,也就是看起来覆盖了更低级的元素。

参考资料来源:百度百科-css