继承父级颜色的语音气泡箭头

有趣的问题:


通过“ css3语音泡沫”,Jin表示在容器上使用伪元素添加一点指针箭头( 三角形 )。 并不是真正CSS3,但这太过分了。

假设在外部CSS文件中设置粉红色是不切实际的。 也许是用户设置,或者也许是动态设置。

<div class="speech-bubble" style="background: pink;">
   I like bananas, because they have no bones.
</div>

将容器设置为内联样式很好,但是不幸的是,伪元素没有内联样式。 因此,我们最终可能会遇到以下情况:

笨蛋

虽然有解决方案! 在为容器设置内联样式时,我们也可以为border-color设置内联样式。 即使容器实际上没有边框,我们也可以依靠继承将颜色向下传递给伪元素,该伪元素被视为子元素。

<div class="speech-bubble" style="border-color: pink; background: pink;">
   I like bananas, because they have no bones.
</div>

然后在伪元素的代码中,我们将专门让它继承颜色:

.speech-bubble:after {
   content: "";
   position: absolute;
   top: 100%;
   left: 20px;
   border-top: 20px solid black;
   border-top-color: inherit; 
   border-left: 20px solid transparent;
   border-right: 20px solid transparent; 
}

请注意,我已经申请inheritborder-top-color ,而不是简写属性border-top 。 由于某种原因(请随时启发我), inherit在速记中不起作用。 还要注意,当您用inherit覆盖颜色时,它不会从其上方的颜色集(黑色)“继承”,而是从其父级继承。 因此,如果需要默认值,则需要在父border-color上设置border-color

观看演示

翻译自: https://css-tricks.com/speech-bubble-arrows-that-inherit-parent-color/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值