微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

css – 如何使用mix-blend-mode,但不会影响子元素?

好的,所以我正在构建一个WordPress网站,有问题的页面可以在这里看到: http://test.pr-tech.com/power-line-markers/

我遇到的问题是我在我的div容器中使用mix-blend-mode来在背景上使用’lighten’混合.

它完美地工作,但我遇到的问题是,不幸的是容器内的子元素(即文本)也继承了混合模式,因此它也使我的文本“混合”,这不是我想要的(我希望文本没有混合模式).

无论如何,你可以看到我在下面使用的代码

#category-intro-text {
    padding: 0.625em 0.938em;
    mix-blend-mode: lighten;
    background-color: rgba(220,235,255,0.8); repeat;
}

我试过应用’mix-blend-mode:none;’之类的东西.到文本,但这不起作用.

我已经在谷歌搜索了这个相当广泛的答案,但是,这个主题并没有多少(如果有的话).

解决方法

我意识到你刚才问过这个问题,但我今天一直在玩同样的问题,并设法解决这个问题.

将#category-intro-text div中的内容与另一个相对定位的div包装在一起.最终,你会想要将风格添加到你的CSS而不是像我在这里所做的那样内联.

<div id="category-intro-text">
    <div style="position: relative;">   
        <h1>Power Line Markers</h1>
        Etc. Etc.
    </div>
</div>

然后删除背景颜色并混合您在#category-intro-text div的样式表中获得的信息.你最终应该……

#category-intro-text {
  padding: 0.625em 0.938em;
  position: relative;
}

最后,使用:: before伪元素添加混合层.

#category-intro-text::before {
  content: "";
  display: block;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background-color: rgba(220,0.8);
  mix-blend-mode: lighten;
}

希望能做到这一点.它通过多层来完美地为我工作.

编辑:Here is a Fiddle从前一个答案分叉.

原文地址:https://www.jb51.cc/css/213984.html

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