可能并不是那么显而易见,但是HTML文档中的元素却是存在于三个维度之中。除了大家熟知的平面画布中的x轴和y轴,还有控制第三维度的z轴。

像 margin , float , offset 这些属性,控制着元素在x轴和y轴上的表现形式一样。 z-index 这个属性控制着元素在z轴上的表现形式。

z-index属性

z-index属性指定两件事:

当前元素的堆叠顺序

当前元素是否建立新的堆叠上下文

该属性仅适用于定位元素。即拥有 relative, absolute, fixed属性的 position 元素。

z-index属性有三个可能的值:

描述

auto

默认。堆叠顺序与父元素相等。

< integer >

设置元素的堆叠顺序。

inherit

规定应该从父元素继承 z-index 属性的值。

z-index: auto | | inherit

堆叠顺序(Stacking Level)

堆叠顺序是当前元素位于z轴上的值。数值越大表明元素的堆叠顺序越高,越靠近屏幕。

如果未指定 z-index 的属性,元素的堆叠顺序基于它所在的文档树。默认情况下,文档中后来声明的元素具有更高的堆叠顺序。

计算堆叠顺序

除了指定的 z-index,元素的堆叠顺序是由大量的因素控制的。元素按照下面表格顺序进行堆叠。

位置

描述

CSS

1 (bottom)

元素构成堆叠上下文

z-index: < integer >

2

负堆叠顺序的子元素

z-index: < negative integer > position: relative | absolute | fixed

3

文档流中,非内联,非定位子元素

display: /* not inline */ position: static

4

非定位浮动子元素

float: left | right position: static

5

内联流,非定位子元素

display: /* inline */ position: static

6

堆叠顺序为0的子元素

z-index: auto | 0 position: relative | absolute | fixed

7(top)

堆叠顺序为正的子元素

z-index: < position intege > position: relative | absolute | fixed

堆叠上下文(Stacking Contex)

当我们用 z-index 属性指定元素的堆叠顺序时,我们并不总是指定这个元素的堆叠顺序相关于页面内的其他元素。元素的堆叠顺序只是相关于其堆叠上下文。

这可能会导致一些奇怪的情况,比如具有较大 z-index 的元素并不总是位于具有较低 z-index 元素的上方。

可以用下面的规则解释堆叠上下文。

默认堆叠上下文是根元素

任何HTML文档默认的堆叠上下文都是 元素。因此,除非创建新的堆叠上下文,默认情况下,元素的堆叠顺序相关于页面内的其他元素。

用 z-index 属性建立一个新的堆叠上下文

我们是通过为一个元素的 z-index 属性设置一个整数值来建立新的堆叠上下文。为达到预期效果,首先,设置该整数为当前元素的堆叠顺序,其次,创建一个新的堆叠上下文。

新的堆叠上下文适用于该元素的任何子元素。子元素只和这个层堆叠上下文有关,和根堆叠上下文无关。

在下面的示例中,.foo 属于堆叠上下文 1,而.bar 属于堆叠上下文 2。

元素的堆叠顺序不能高于 (或低于) 父元素的堆叠顺序

当父元素的堆叠顺序被设置的时候,这也意味着,它的子元素的堆叠顺序不能高于或低于这一顺序 (相对于父元素的堆叠上下文)。

在下面的示例中,即使 .bar 的 z-index 值高于 .baz,它依然显示 .baz 下方。这是因为,在堆叠上下文1中,.bar 不能高于或低于堆叠顺序1。

.foo { z-index: 1; }

.bar { z-index: 1000; }

.baz { z-index: 2; }

在校学生,本科计算机专业。一个积极进取、爱笑的女生,热爱前端,喜欢与人交流分享。想要通过自己的努力做到心中的那个自己。微博:@静-如秋叶

css3 z-index,z-index的工作原理相关推荐

  1. 消解原理推理_什么是推理统计中的Z检验及其工作原理?

    消解原理推理 I Feel: 我觉得: The more you analyze the data the more enlightened, data engineer you will becom ...

  2. css3运动后留下轨迹尾巴_球磨机的工作原理及机内运动轨迹分析

    球磨机被广泛用于矿山.建筑材料.耐火材料.玻璃陶瓷等行业作为磨粉作业的主要设备.那么球磨机的工作原理及运动轨迹你都了解么?下面小编带你深入了解其原理及运动轨迹. 一.球磨机工作原理 球磨机的主要部分& ...

  3. css3宽度变大动画_不会仪表?太尴尬了。14种动画让你轻松掌握各种流量计工作原理...

    相信很多同仁都和小编一样,在工厂干活做电气维护,电气仪表不分家.没办法,老板为了节约成本,很多公司是不配备专门的仪表工的.按理说,仪表工和电工是二个不同的工种,但是老板不理会这个啊.啊,李工,这个仪表 ...

  4. css3宽度变大动画_动画演示流量计的工作原理

    ​ 流量计(Flowmeter)是工业生产的眼睛,与国民经济.国防建设.科学研究有着密切的关系,在国民经济中占据重要地位与作用,可用于气体.液体.蒸汽等介质流量的测量.为了更好的展示流量计测量原理,小 ...

  5. css3宽度变大动画_【动画演示】流量计的工作原理,真涨见识!

    [培训]多热源联网供热技术与管网水力平衡调配技术培训班(2020年7月9-11日 泰安市) 本文转自:除灰脱硫脱硝技术联盟 流量计(Flowmeter)是工业生产的眼睛,与国民经济.国防建设.科学研究 ...

  6. css3宽度变大动画_动画演示14种流量计的工作原理,真涨见识!

    点上面蓝色字体直观学机械可长期订阅我们 法律顾问:赵建英律师 流量计(Flowmeter)是工业生产的眼睛,与国民经济.国防建设.科学研究有着密切的关系,在国民经济中占据重要地位与作用,可用于气体.液 ...

  7. css3宽度变大动画_动画演示14种流量计的工作原理,长知识

    流量计(Flowmeter)是工业生产的眼睛,与国民经济.国防建设.科学研究有着密切的关系,在国民经济中占据重要地位与作用,可用于气体.液体.蒸汽等介质流量的测量.为了更好的展示流量计测量原理,小编采 ...

  8. css3宽度变大动画_动画演示14种流量计的工作原理,真涨见识

    流量计(Flowmeter)是工业生产的眼睛,与国民经济.国防建设.科学研究有着密切的关系,在国民经济中占据重要地位与作用,可用于气体.液体.蒸汽等介质流量的测量.为了更好的展示流量计测量原理,小编采 ...

  9. css3宽度变大动画_动画演示流量计的工作原理,真涨见识

    流量计(Flowmeter)是工业生产的眼睛,与国民经济.国防建设.科学研究有着密切的关系,在国民经济中占据重要地位与作用,可用于气体.液体.蒸汽等介质流量的测量.为了更好的展示流量计测量原理,小编采 ...

  10. css3宽度变大动画_【HVAC】动画演示流量计的工作原理,真涨见识!

    流量计(Flowmeter)是工业生产的眼睛,与国民经济.国防建设.科学研究有着密切的关系,在国民经济中占据重要地位与作用,可用于气体.液体.蒸汽等介质流量的测量.为了更好地展示流量计测量原理,下面用 ...

最新文章

  1. 解决JS在url中传递参数时参数包含中文乱码的问题
  2. 浅析网站SEO整站优化的优势!
  3. Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决...
  4. 文巾解题 567. 字符串的排列
  5. IDEA 上位?不!Eclipse Theia 1.0 发布!
  6. Cstring转化为String
  7. CSS 定位 四种定位
  8. MFC创建模式对话框与非模式对话框
  9. linux中的开机启动
  10. Gprinter Android SDK V2.1 使用说明
  11. 【QT5】解决 QT 界面中文显示乱码问题
  12. java开源cad_.Net开源项目(包含CAD支持)
  13. RabbitMQ提示ERROR: epmd error for host
  14. 阿里面试官没想到,一个Volatile,我都能跟他吹半小时
  15. 宝塔面板专业版企业版教程 纯手动 带原版脚本 插件免费用
  16. 微处理器基本功能及主要性能指标
  17. jquery easyui二次开发总结(二)
  18. 20个免费的网络电话
  19. 用Beamer做slides-模板
  20. 防火墙系列(二)-----防火墙的主要技术之包过滤技术,状态检测技术

热门文章

  1. python求两数之和的命令_python计算两个数的百分比方法
  2. c语言error ld returned,[Error] ld returned 1的错误
  3. 搜狐视频如何上传原创视频
  4. vue-cli项目布署问题解决:空白页、静态资源文件404错误、refrenceError:promise未定义(部分浏览器不支持ES6语法)
  5. sudo mysql压缩备份解压操作_高效管理文件之压缩及解压缩 .bz2 文件
  6. linux iptables 编译,Linux下编译安装iptables
  7. android线程优先级大小,android 设置线程优先级 两种方式
  8. java 计算反码_java基础知识-原码、反码、补码、运算符
  9. appium自动化测试_Appium自动化测试入门教程No.1—— Appium介绍
  10. Linux进阶之路————Linux运行级别(重置密码)