0

我尝试在我的项目中通过代码实现类似于 Photoshop 乘法的效果。同时,我尝试排除子 div 中的一些元素会受到它的影响(如文本层) - 我撞到了墙上。已经尝试添加其他 div 设置不同的 z-index 或使用绝对位置。

在这里您可以找到带有问题示例的笔:

HTML

<div class="main">
  <div class="inner">
    <h1>Some header</h1>
    <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Quia eligendi est eius unde autem dolore adipisci perspiciatis laboriosam reiciendis placeat! Eveniet, quam? Vitae sit saepe quam delectus fugiat, dolores necessitatibus.</p>
  </div>
</div>

CSS

.inner {
  text-align: center;
  padding: 50px 0;
  background: #0079ff;
     mix-blend-mode: multiply;
    backface-visibility: hidden;
  color: white;
}

.main {
  background-repeat: no-repeat;
  background-image: url('https://preview.ibb.co/fMY2f9/Bg1.jpg');
  background-size: cover;
}

摘要: “child div”的子元素受乘法影响。有没有办法防止这种情况?

截图:

已应用乘法,但它也会影响文本图层。

在此处输入图像描述

4

1 回答 1

1

使用伪元素作为背景来避免这种情况:

.inner {
  text-align: center;
  padding: 50px 0;
  color: white;
}

.main {
  background-repeat: no-repeat;
  background-image: url('https://preview.ibb.co/fMY2f9/Bg1.jpg');
  background-size: cover;
  position: relative;
  z-index: 0;
}

.main::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #0079ff;
  mix-blend-mode: multiply;
}
<div class="main">
  <div class="inner">
    <h1>Some header</h1>
    <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Quia eligendi est eius unde autem dolore adipisci perspiciatis laboriosam reiciendis placeat! Eveniet, quam? Vitae sit saepe quam delectus fugiat, dolores necessitatibus.</p>
  </div>
</div>

于 2018-08-28T14:10:13.703 回答