关于css的层叠上下文和层叠顺序问题
关于css的层叠上下文和层叠样式问题
最近在项目中遇到了一个让我欲仙欲死的问题,我给项目中的图片设置了一个淡入效果,几opacity变化,但当我在它的上面有一个定位元素时,动画结束后,定位元素居然被遮住了,百思不得解,谷歌了白天,才知道是层叠上下文、层叠顺序搞得鬼,所以这里把搜索的结果记下来,帮自己,也帮能够看到的盆友。
这里贴出一个解释很详细的地址,要是看了不太明白的,可以戳这里哦
首先层叠上下文是什么鬼呢?
层叠上下文,英文称作”stacking context”. 是HTML中的一个三维的概念。如果一个元素含有层叠上下文,那么他这z轴方向就会比其他元素高一些。可以理解为在网页中的同一片区域中。如果有两个元素重叠,那么那个含有层叠上下文的元素一定覆盖在没有层叠上下文元素的上面。
那么层叠顺序又是什么鬼呢?
“层叠顺序”英文称作”stacking order”. 表示元素发生层叠时候有着特定的垂直显示顺序,层叠顺序即是层叠的规则。我想了解css的童鞋一定知道页面上的元素是分层级的。background/border<负z-index<block块状水平盒子<float浮动盒子<inline/inline-block水平盒子<z-index:auto或看成z-inde:0<正z-index;
没错,这就是层叠顺序,但这只是css2.1时代的层叠顺序,当css3出现之后,就出现了一些令人蛋疼的东西了,我遇到的问题也正是css3的animate属性带来的层叠上下文变化所带来的影响;
这里有一些关于层叠准则和层叠上下文特性,了解了这些,再加上css3带来的新的层叠上下文属性,就不难发下我们的问题出现在哪里了;
下面这两个是层叠领域的黄金准则。当元素发生层叠的时候,其覆盖关系遵循下面2个准则:
- 谁大谁上:当具有明显的层叠标识的时候,如z-index值时,在同一个层叠上下文领域,层叠水平值大的那个覆盖层叠水平值小的那个。
- 后来居上:当元素层叠水平、层叠顺序一致时,在DOm流中处于后面的元素会覆盖前面的元素。
层叠上下文元素有如下特性:
- 层叠上下文的层叠水平要比普通元素高(在css2.1时代,层叠上下文元素应该就是有定位属性的这一类元素吧)
- 层叠上下文可以阻断元素的混合模式
- 层叠上下文可以嵌套,内部层叠上下文及其所有子元素均受制于外部的层叠上下文
- 每个层叠上下文和兄弟元素独立,也就是当进行层叠变化或渲染的时候,只需要考虑后代元素
- 每个层叠上下文是自成体系的,当元素发生层叠的时候,整个元素被认为是在父层叠上下文的层叠顺序中。
下面我们来看看CSS3与新时代的层叠上下文
z-index值不为auto的flex项(父元素display:flex|inline-flex).- 元素的
opacity值不是1. - 元素的
transform值不是none. - 元素
mix-blend-mode值不是normal. - 元素的
filter值不是none. - 元素的
isolation值是isolate. will-change指定的属性值为上面任意一个。- 元素的
-webkit-overflow-scrolling设为touch.
结论:
不难看出,我的问题是出来了opacity和dom的顺序上了,在给图片设置fade-in是,改变的是它的opacity属性,这样就将它变成了层叠上上下文元素了,而我的文字又在它的上方,且没有设置z-index属性,自然当它的opacity属性变成1之后文字就被遮住了。
最后希望这篇文章对大家有所帮助。同事再次贴出我认为比较讲解比较详细的一片blog供大家参考,戳这里
关于css的层叠上下文和层叠顺序问题的更多相关文章
- 深入理解CSS中的层叠上下文和层叠顺序(转)
by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=5115 零.世间的道 ...
- 深入理解CSS中的层叠上下文和层叠顺序
零.世间的道理都是想通的 在这个世界上,凡事都有个先后顺序,凡物都有个论资排辈.比方说食堂排队打饭,对吧,讲求先到先得,总不可能一拥而上.再比如说话语权,老婆的话永远是对的,领导的话永远是对的. 在C ...
- [转]深入理解CSS中的层叠上下文和层叠顺序
http://www.zhangxinxu.com/wordpress/2016/01/understand-css-stacking-context-order-z-index/ 零.世间的道理都是 ...
- CSS中的层叠上下文和层叠顺序
一.什么是层叠上下文和层叠水平 层叠上下文和层叠水平有一点儿抽象.我们可以吧层叠上下问想象成一张桌子,如果有另一个桌子在他旁边,则代表了另一个层叠上下文. Stacking context 1由文件根 ...
- css 层叠上下文和层叠顺序
层叠上下文是css中的一个三维概念,拥有层叠上下文的元素在z轴上比普通元素要高,而且其内部的所有内容是自成体系的,其后代都是在它的层叠顺序中 哪些元素拥有层叠上下文 1.根元素,也就是html默认拥有 ...
- css层叠上下文和层叠顺序
普通元素的层叠水平优先由层叠上下文决定,因此,层叠水平的比较只有在当前层叠上下文元素中才有意义. 诸位千万不要把层叠水平和CSS的z-index属性混为一谈.没错,某些情况下z-index确实可以影响 ...
- css之层叠上下文和层叠顺序
大家在写网页的时候会不会经常遇到莫名奇妙的样式问题,比如谁覆盖了谁.也找不出原因,为什么z-index高的却没有覆盖掉z-index低的元素呢? 带着这些疑问.我做了个小实验.代码如下: <st ...
- 彻底搞懂CSS层叠上下文、层叠等级、层叠顺序、z-index
前言 最近,在项目中遇到一个关于CSS中元素z-index属性的问题,具体问题不太好描述,总结起来就是当给元素和父元素色设置position属性和z-index相关属性后,页面上渲染的元素层级结果和我 ...
- 20190409-层叠の层叠上下文、层叠水平、层叠顺序、z-index、伪元素层叠
写在前面乱七八糟的前言: 此"八卦"的源于,在写下图这个圆滚滚的导航布局时,使用元素及其伪元素加上绝对定位完成,但遇到:before或:after伪元素与元素的层叠顺序,就是伪元素 ...
随机推荐
- 在线教育平台搭建 预览和models
一.前言 1.1.项目介绍 在线演示地址:mxonline.mtianyan.cn 开发环境: python:3.6.4 Django:2.0.2 后台管理:xadmin 系统概括: 系统具有完整的用 ...
- 关于Android sdkmanager目录结构的总结
SDK Platform是指一些已经编写好的库函数,类文件,我们可以直接调用 Samples for SDK是指一些样本代码,可以导入eclipse运行出来查看里面函数的效果 以system imag ...
- python 全栈开发,Day3(正式)
一.基础数据类型 基础数据类型,有7种类型,存在即合理. 1.int 整数 主要是做运算的 .比如加减乘除,幂,取余 + - * / ** %...2.bool 布尔值 判断真假以及作为条件变量3. ...
- Angular开发实践(一):环境准备及框架搭建
引言 在工作中引入Angular框架将近一年了,在这一年中不断的踩坑和填坑,当然也学习和积累了很多的知识,包括MVVM框架.前后端分离.前端工程化.SPA优化等等.因此想通过Angular开发实践这系 ...
- Java 中 利用正则表达式 获取 网页图片
import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.URL;i ...
- Angular组件——父子组件通讯
Angular组件间通讯 组件树,1号是根组件AppComponent. 组件之间松耦合,组件之间知道的越少越好. 组件4里面点击按钮,触发组件5的初始化逻辑. 传统做法:在按钮4的点击事件里调用组件 ...
- 笔记:Jersey REST 传输格式
通常REST接口会以XML或JSON作为主要传输格式,同时 Jersey 也支持其他的数据格式,比如基本类型.文件.流等格式. 基本类型 Java的基本类型又叫原生类型,包括4种整数(byte.sho ...
- 用js编解码base64
以下是编码和解码的方法 function Base64() { // private property _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef ...
- ASUS T100TA 换屏要记
建议完整阅读后再执行操作! 参考: [图片]华硕T100换触摸屏详细教程,全网第一发[平板电脑吧]_百度贴吧 [图片]我是这么修T100的……换外屏[win8平板吧]_百度贴吧 淘宝信息: 选择适用型 ...
- dubbo + dubbo-admin 入门级demo
整个示例中,除了dubbo的服务提供者和消费者是在windows里跑着,其他的所有程序都是在centos中. 1.准备环境 windows中jdk和java ide下载. 在centos中,创建软件安 ...
