CSS Opacity属性对层叠上下文的影响

CSS Opacity属性对层叠上下文的影响今天在遇到一个opacity过渡的时候,遇到了一个奇怪的问题:父元素设置了opacity。子元素设置了z-index:-1

大家好,又见面了,我是你们的朋友全栈君。

今天在遇到一个opacity过渡的时候,遇到了一个奇怪的问题:
父元素设置了opacity。
子元素设置了z-index:-1

        <div class="box" style="opacity:.7">
            <img style="position:relative;z-index:-1" src="http://www.gbtags.com/gb/laitu/200" />
        </div>

CSS Opacity属性对层叠上下文的影响
按我之前的理解,图片应该是躲在.box元素后面的,结果,img却安安静静的躺在.box上面…
WTF?
CSS Opacity属性对层叠上下文的影响

去网上查询了下资料,原来是CSS层叠上下文搞的鬼。。。
当元素的opacity属性不为1的时候,将会创造一个层叠上下文,则无论子元素的z-index为负多少,都将不能穿透父元素。
做个测试

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css"> .box { opacity: .8; padding: 20px; background: blueviolet; } .box:hover { opacity: 1; } .box img { position: relative; z-index: -1; } </style>
    </head>

    <body>
        <p>opacity在不为1的时候会创建层叠上下文</p>
        <div class="box">
            <img src="http://www.gbtags.com/gb/laitu/200" />
        </div>
    </body>

</html>

CSS Opacity属性对层叠上下文的影响

鼠标移入时,opacity为1,.box不具有层叠上下文,img穿透.box


除开opacity属性,还有很多CSS属性也会为元素创建层叠上下文

摘自张鑫旭大神的博客
CSS Opacity属性对层叠上下文的影响

PS:有时候在开发WebAPP页面的时候,会出现一些诡异的布局错乱,有时候可以无脑的设置 transform: translateZ(0);position:relative,可以解决不少问题。

参考链接

深入理解CSS中的层叠上下文和层叠顺序

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141490.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【C#】Unity3D中的C#编程初级[通俗易懂]

    【C#】Unity3D中的C#编程初级[通俗易懂]一、前言这篇文章主要是给零基础想要Unity入门的关于C#编程的一些意见二、参考文章unity中的C#编程-零基础(Unity2017)三、正文1.什么是C#编程语言?微软官方出版2.编程工具(IDE)3.创建第一个C#代码4.场景的保存和脚本的保存5.关于日志输出(指控制输出,其中Log有三类:正常、警告、错误输出)6.变量7.方法的定义和调…

    2022年5月13日
    61
  • JSON中,java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决[通俗易懂]

    JSON中,java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决[通俗易懂]JSON中,java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决

    2022年4月23日
    69
  • sqlserver datetime与smalldateTime

    sqlserver datetime与smalldateTimedatetime 从1753年1月1日到9999年12月31日的日期和时间数据,精确度为百分之三秒(等于3.33毫秒或0.00333秒)。–A.测试datetime精度问题DECLARE@tTABLE(datechar(21))INSERT@tSELECT’1900-1-100:00:00.000’INSERT@t

    2022年5月12日
    35
  • TLS/SSL 协议详解 (29) 国密SSL协议

    TLS/SSL 协议详解 (29) 国密SSL协议测试服务器:https://47.89.249.43:4433/(测试时,先将本机时间设置为2018年7月之前(我证书过期了),然后使用360国密浏览器访问。360国密浏览器会在TLS握手失败后才会发起GMSSL握手,所以访问较慢。出现访问不了的情况,请清除360国密浏览器所有缓存,重启浏览器后再访问)源码在https://github.com/mrpre/atls上可以获得…

    2022年6月2日
    102
  • pycharm 替换快捷键_pycharm到包快捷键

    pycharm 替换快捷键_pycharm到包快捷键查找/替换(Search/Replace)F3下一个Shift+F3前一个Ctrl+R替换(需要同时替换的变量名等)Ctrl+Shift+F整个项目中全局查找Ctrl+Shift+R整个项目中全局替换

    2022年8月26日
    3
  • css适配不同分辨率屏幕_html5判断分辨率

    css适配不同分辨率屏幕_html5判断分辨率最近出了很多新机,很多人在购买前会详细查看手机参数,其中“分辨率”这一项让不少人一头雾水,究竟手机分辨率是什么?对我们的使用体验有什么影响?是不是分辨率越高越好?教授估计这些问题百思特网让很多对手机了解不多的朋友产生困扰,所以今天就来为大家科普科普~一、什么是手机屏幕分辨率?图像的显示都是由许多像素点排列组成的,手机屏幕分辨率就代表着像素个数,当用手机屏幕中横向的像素点与竖向的像素点相乘的时候,再…

    2022年8月13日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号