CSS技巧:继承父元素颜色实现泡泡下方的箭头
原文:http://css-tricks.com/speech-bubble-arrows-that-inherit-parent-color/
由于这是一个改良的问题,所以原文前面哪些洛里啰嗦的话就不讲了,大概说说要做什么。
要实现的是下面的那个三角。通常我们会用一个width 和 height 都为0的div,然后通过设置各个边的border来实现。但是这样会有复用问题,如果我们有多重颜色的气泡,那就要写多个颜色了,维护起来十分麻烦。
原文作者利用的pseudo元素,实现了这种继承,通过设置content:""来把pseudo元素设置为0宽高,再设置border。下面上代码。
<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;
}
主要看CSS片段,由于用了:after,所以可以通过border-top-color来继承父元素的颜色。如果要改颜色(蓝色),则只需要将
style="border-color: pink; background: pink;
改为
style="border-color: blue; background: blue;
就能一起改了,换句话说可以通过inline的方式更改颜色,一次改两个。
最后放上jsFiddle的地址 http://jsfiddle.net/chriscoyier/taaGc/1/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?