伪元素RGBA箭头颜色与父级不匹配

时间:2017-09-04 21:53:09

标签: css pseudo-element

我在div#telegram-join)下创建一个伪元素箭头,两者都有背景/边框颜色作为RGBA值(rgba(255, 255, 255, 0.25)),但箭头是受到不同影响,看起来比div更暗。这是因为它更小吗?我怎么能匹配它们?谢谢!

HTML

<div id="telegram-join" class="bg-combo">
  <h1><i class="fa fa-telegram"></i> Chat with us on Telegram</h1>
</div>

CSS:

.bg-combo {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  border-radius: 8px;
  padding: 5px 10px;
  width: fit-content;
  background-color: white;
  background-color: rgba(255, 255, 255, 0.25);
  text-align: center;
}

.bg-combo h1 {
  display: inline-block;
  font-size: 2em;
  line-height: 1.5;
  text-transform: uppercase;
}
.bg-combo h1 i {
  margin-right: 10px;
}

#telegram-join {
  position: relative;
  margin: 15px auto 25px;
}

#telegram-join :after {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: rotate(-45deg);
  transform-origin: 50% 50%;
  margin-left: -15px;
  margin-top: -15px;
  border: 15px solid #fff;
  width: 0;
  height: 0;
  border-color: transparent transparent rgba(255, 255, 255, 0.25) rgba(255, 255, 255, 0.25);
  content: '';
}

演示:CodePen

1 个答案:

答案 0 :(得分:1)

你的背景颜色(容器的)有0.25%的不透明度,而伪元素(在那个元素里面)也有0.25%的不透明度(所以它的背景不再是身体背景,它是新的背景容器元素 - 具有不透明度。)

您可以通过将伪元素的不透明度设置为0.125%来解决此问题:

border-color: transparent transparent rgba(255,255,255,0.125) rgba(255,255,255,0.125);

或者将两个元素的背景设置为您想要的实际颜色:

border-color: transparent transparent #D7D7D7 #D7D7D7;

以下是您的codepen的更新:
https://codepen.io/anon/pen/eEXqaO