发表于: 2017-01-16 21:07:34

1 1228


今天完成的事情:

上网查找资料制作z-index与层叠上下文的ppt并在晚上讲解;


明天计划的事情:

开始写任务六;


遇到的问题:

以前做css任务时,总觉得z-index就是一个元素显示的优先级的一个属性,z-index越大,元素就在越上方显示;z-index越小,元素就在越下方显示,没有想到过z-index与层叠上下文的关系,感觉自己是否是太浮躁了,一直都是在跟着任务走,很多只是的拓展并没有去接触,以后这方面要注意;


收获:

1、背景介绍

层叠上下文,就是在呈现的时候决定哪个元素在上、哪个元素在下,初学的时候觉得这东西应该就是跟z-index的大小有关,然而并没有这么简单,我们来感受下。

2、知识剖析

先了解一下z-index的基本信息:

在W3C是这样描述的:

每个元素都具有三维空间位置,除了水平和垂直位置外,还能在 "Z轴" 上层层相叠、排列。元素在 "Z轴" 方向上的呈现顺序,由层叠上下文和层叠级别决定。在文档中,每个元素仅属于一个层叠上下文。元素的层叠级别为整型,它描述了在相同层叠上下文中元素在 "Z轴" 上的呈现顺序。同一层叠上下文中,层叠级别大的显示在上,层叠级别小的显示在下,相同层叠级别时,遵循后来居上的原则,即其在HTML文档中的顺序。不同层叠上下文中,元素呈现顺序以父级层叠上下文的层叠级别来决定呈现的先后顺序,与自身的层叠级别无关。

z-index 接受的属性值为:关键字auto和整数,整数可以是负值。

需要注意的是 z-index 虽然很给力,却只能应用于定位元素(即设置了 position 属性为非 static 值),其它情况下,z-index 将被忽略。

什么是层叠上下文(Stacking Content)

在一个层叠上下文,所有的元素根据规则从下到上排列,分成了七个等级:

1、背景和边框 — 形成层叠上下文的元素的背景和边框。 层叠上下文中的最低等级。

2、负z-index值 — 层叠上下文内有着负z-index值的子元素。

3、块级盒 — 文档流中非行内非定位子元素。

4、浮动盒 — 非定位浮动元素。

5、行内盒 — 文档流中行内级别非定位子元素。

6、z-index: 0 — 定位元素。这些元素形成了新的层叠上下文。

7、正z-index值 — 定位元素。层叠上下文中的最高等级。

3、常见问题

观看一下代码,判断哪一种颜色的方块显示在最上方?

HTML部分

                <div class="red">

                    <div class="yellow"></div>

                </div>

                <div class="green">

                    <div class="blue"></div>

                </div>

CSS部分

                <style type="text/css">

                    .red{

                        position: relative;

                        width: 200px;

                        height: 200px;;

                        background-color: red;

                        z-index: 1;

                    }

                    .yellow{

                        position: absolute;

                        width:150px;

                        height: 500px;

                        margin-left: 20px;

                        background-color: yellow;

                        z-index: 5;

                    }

                    .green{

                        position: relative;

                        width: 200px;

                        height: 200px;

                        margin-left: 50px;

                        background-color: green;

                        z-index: 2;

                    }

                    .blue{

                        position: absolute;

                        width:100px;

                        height: 100px;

                        background-color: blue;

                        z-index: 2;

                    }

                </style>

4、解决方案

层叠上下文是具有包含关系的,同时又各自应用层叠规则而互不影响,也就是说一个层叠上下文中有一个z-index值很大的定位元素,它依然会处于层叠等级高于创建该层叠上下文元素的元素的下方。

5、编码实战

6、拓展思考

opacity与层叠上下文

7、参考文献

W3C:http://www.w3school.com.cn/cssref/pr_pos_z-index.asp

关于z-index那些你不知道的事:https://webdesign.tutsplus.com/zh-hans/articles/what-you-may-not-know-about-the-z-index-property--webdesign-16892

Stacking Content层叠上下文:https://leozdgao.me/stacking-content-basic/

8、更多讨论

opacity与层叠上下文



返回列表 返回列表
评论

    分享到