CSS教程:元素层叠级别及z-index

2016-02-19 23:37 3 1 收藏

下面图老师小编跟大家分享CSS教程:元素层叠级别及z-index,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - Web开发 】

原文:http://rong179.blogbus.com/logs/24966909.html

声明

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

定位元素:position属性值设置除默认值static以外的元素,包括relative,absolute,fixed。
平台:win/IE win/FF

z-index:

用来确定定位元素在垂直于显示屏方向(以下称为Z轴)上的层叠顺序

值:   auto | 整数 | inherit
默认:  auto
适用于: 定位元素
继承性: no

理解stacking context

每个box都归属于一个stacking context,它是元素在z轴方向上定位的参考。根元素形成 root stacking context,其他stacking context由定位元素设置z-index为非auto时产生。如#div1{position:relative;z-index:0;}即可使 id=div1的元素产生stacking context。stacking context和 containing block 并没有必然联系。

理解stack level

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

在一个stacking context中的每个box,都有一个stack level(即层叠级别,以下统一用stack level),它决定着在同一stacking context中每个box在z轴上的显示顺序。同一stacking context中,stack level值大的显示在上,stack level值小的显示在下,同一stack level的遵循后来居上的原则(back-to-front )。不同stacking context中,元素显示顺序以父级的stacking context的stack level来决定显示的先后情况。于自身stack level无关。注意stack level和z-index并不是统一概念。(将在后文慢慢理解)

stack level规则

每个stacking context中可包含块级(block)元素、内联(行内inline)元素,还有设置float属性的元素、定位元素等等他们在同一父级 stacking context中的显示顺序是怎样的?即stack level是怎样的呢?比如一个块级元素和内联元素发生层叠的话谁会在上面呢?是不是谁在后面谁就在上面呢?

根据w3c关于stack level的介绍可以得出以下stack level规则

每个stacking context都包括以下stack level (后来居上):

父级stacking context的背景、边界 z-index值为负值的定位元素(值越小越在下) 文本流中非定位的、block块级子元素 文本流中非定位的、float浮动子元素 仿佛能产生stacking context的inline元素
否则,inline元素的stack level将在block元素之前。 z-index:auto/0的定位元素 z-index值为正的定位元素(值越大越在上)

以上stack level在浏览器执行情况:

firefox3.0下测试完全吻合,firefox2.0下稍有不同即:z-index值为负值的定位元素在父级stacking context的背景、边界之前。
ie6.0和7.0中:inline元素的stack level位于block元素之前,且文本流中非定位的、float浮动子元素(以下简称浮动元素)和文本流中非定位的、block块级子元素(以下简称block元素)处于同一级。

来源:https://www.tulaoshi.com/n/20160219/1630242.html

延伸阅读
标签: Web开发
关于用CSS来实现元素的定位问题,其实很多人对此都是一知半解,没有形成一个统一的认识,CSS对元素的定位包括相对定位和绝对定位,同时,还可以把相对定位和绝对定位结合起来,形成混合定位,我收集相关资料总结了一下: 1. position:static|无定位 position:static是所有元素定位的默认值, 一般不用注明,除非有需要取消继承的别的定位 exam...
标签: Web开发
当使用了多个样式表,样式表需要争夺特定选择符的控制权。在这些情况下,总会有样式表的规则能获得控制权。以下的特性将决定互相对立的样式表的结果。 正如以前所提及的,网页制作者和读者都有能力去指定样式表。当两者的规则发生冲突,网页制作者的规则会凌驾于读者的其它相同权重的规则。而网页制作者和读者的样式表都超越浏览器的...
标签: Web开发
首先讲两个概念,一个是行内元素,一个是块级元素。行业元素是指该元素标记的内容不不会对现在的结构造成影响,属于应用样式,辅助应用样式表等作 用;而块级元素为一个块状,单独占据一行,相当于在一个该元素前后各加一个换行。 两者最明显的区别是:DIV(division)是一个块级元素,可以包含段 落、标题、表格,乃至诸如章节、摘要和备注...
标签: Web开发
按照CSS规范,浮动元素(floats)会被移出文档流,不会影响到块状盒子的布局而只会影响内联盒子(通常是文本)的排列。因此当其高度超出包含容器时,一般父容器不会自动伸长以闭合浮动元素。但是有时我们却需要这种自动闭合行为,具体如何处理呢? 有一种做法 就是在父容器内再插入一个额外的标签,并令其清除浮动(clear)以撑大...
标签: Web开发
按照CSS规范,浮动元素(floats)会被移出文档流,不会影响到块状盒子的布局而只会影响内联盒子(通常是文本)的排列。因此当其高度超出包含容器时,一般父容器不会自动伸长以闭合浮动元素。但是有时我们却需要这种自动闭合行为,具体如何处理呢? 有一种做法就是在父容器内再插入一个额外的标签,并令其清除浮动(clear)以撑大父容...

经验教程

147

收藏

91
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部