同一div中是否可能有不同的z-index?

时间:2019-03-25 10:51:28

标签: html css z-index

我正在尝试使用两次相同的文本,一个在另一个之上。该文本被图像剪切。

这些文本位于居中的同一div中,但它们的z-index保持不变。

我试图更改元素的任何z-index。

.bottom {
  font-family: Gotham;
  font-style: normal;
  font-weight: 900;
  font-size: 144px;
  color: #ededed;
  position: absolute;
}

.up {
  font-family: Gotham;
  font-style: normal;
  font-weight: 900;
  font-size: 144px;
  color: transparent;
  -webkit-text-stroke: #ededed 2px;
  z-index: 2;
  position: absolute;
}

.group {
  position: relative;
  width: 465.125px;
  height: 144px;
  left: 50%;
  right: 50%;
  transform: translate(-50%, -50%);
  margin-top: 30%;
  z-index: 1;
}
<div class="group">
  <p class="up">ZAIUS</p>
  <p class="bottom">ZAIUS</p>
</div>

我想在图像和笔划文本下添加填充文本。 而且笔划文本应该位于另一个文本和图像之上。

3 个答案:

答案 0 :(得分:0)

我对z-index不太了解,但是如果我理解是正确的话,请从.up中删除z-index并将位置更改为相对作品。

.bottom {
  font-family: Gotham;
  font-style: normal;
  font-weight: 900;
  font-size: 144px;
  color: #ededed;
  position: absolute;
}

.up {
  font-family: Gotham;
  font-style: normal;
  font-weight: 900;
  font-size: 144px;
  color: transparent;
  -webkit-text-stroke: #ededed 2px;
  position: relative;
}

.group {
  position: relative;
  width: 465.125px;
  height: 144px;
  left: 50%;
  right: 50%;
  transform: translate(-50%, -50%);
  margin-top: 30%;
  z-index: 1;
}
<div class="group">
  <p class="up">ZAIUS</p>
  <p class="bottom">ZAIUS</p>
</div>

答案 1 :(得分:0)

我在这里没有发现问题,只需为描边元素分配更高的z-index。另外,由于文本的颜色和笔触相同,可能会使您感到困惑。我尝试演示HERE

答案 2 :(得分:0)

达到您的目标根本不需要z-index属性,如下面的示例所示。

此外,应尽可能省略z-index,以保持代码的干净,可重用,可维护和可扩展。
当然,在很小的项目中,它没有在大型项目中那么重要。

#frame {
  position: relative;
  width: 100%;
  height: 100%;
}

.group {
  position: absolute;
  width: 400px;
  height: 250px;
  left: 10%;
  top: 30%;
}

.group img {
  position: absolute;
  top: 0;
  left: 70%;
}

.big-letters {
  font-family: Gotham;
  font-style: normal;
  font-weight: 900;
  font-size: 144px;
  position: absolute;
  top: 0;
  left: 0;
}

.bottom {
  color: #ededed;
}

.up {
  color: transparent;
  -webkit-text-stroke: #ededed 2px;
}
<div id="frame">
  <div class="group">
    <div class="big-letters bottom">LOREM</div>
    <img src="https://via.placeholder.com/300x200"/>
    <div class="big-letters up">LOREM</div>
  </div>
</div>