You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法添加HTML标签时,如何用CSS为两个冒号设置与<em>一致的格式?

问题描述

现有如下HTML代码片段:

<p><em>meta key here</em>:: meta value here</p>

以及CSS代码:

i, em {
  color: red;
  font-size: 80%;
  font-style: italic;
}

需求为将上述HTML中的两个冒号(::)设置为与<em>元素相同的格式,但无法在源码中添加更多HTML标签,仅可使用CSS实现,请问该如何操作?

解决方案

可以通过CSS伪元素替换原冒号并隐藏源码中的冒号,具体实现如下:

修改后的CSS代码:

i, em {
  color: red;
  font-size: 80%;
  font-style: italic;
  position: relative;
  padding-right: 2ch;
  margin-right: -2ch;
}

em::after {
  content: "::";
  position: absolute;
  left: 100%;
  top: 0;
  color: red;
  font-size: 80%;
  font-style: italic;
  margin-left: 0.1ch;
}

p {
  overflow: hidden;
}

原理说明

  • 给<em>设置position: relative,让伪元素能基于它定位;通过margin-right: -2ch把源码中<em>后的两个冒号(占2个字符宽度)挤到<p>可视区域外,再用<p>的overflow: hidden隐藏这部分内容。
  • 利用<em>的::after伪元素生成新的冒号,设置和<em>一致的样式,并定位到<em>右侧,替代原冒号的位置。

这样无需修改HTML源码,就能让冒号拥有和<em>完全相同的样式。

内容的提问来源于stack exchange,提问作者Istvan Robotka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:52:57