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

如何正确使用CSS伪类::before/::after且不影响文本位置 解决引号显示异常问题

CSS伪类插入引号排版问题解决方案

你遇到的问题本质是大号引号默认会参与文本流排版:

  • 设置display: block时,引号作为块级元素单独占一行,自然位置过高
  • 不设置时作为行内元素插入到第一行开头,挤压第一行文本,导致各行缩进不一致

实现方案

采用绝对定位将引号移出文本流,既不会挤压诗句,也可以自由调整位置,同时给列表容器设置统一左侧缩进保证所有诗句对齐。

完整代码

HTML(补充外层列表容器)

<ul class="verse-list">
  <li class = "incipit">This is the first verse</li>
  <li>This is the second verse</li>
  <li>This is the third verse</li>
  <li class = "explicit">This is the last verse</li>
</ul>

调整后CSS

/* 列表容器统一设置,保证所有诗句均等缩进 */
.verse-list {
  position: relative;
  padding-left: 1.2rem; /* 可按需调整缩进大小 */
  list-style: none; /* 不需要去掉默认列表圆点可删除该行 */
  margin: 0;
}

.incipit::before{
  content: '“';
  color: #B42B51;
  font-size: 4rem;
  position: absolute;
  top: -1.2rem; /* 可按需调整上下位置,对齐第一行上方 */
  left: -1.5rem; /* 可按需调整左右位置,放到缩进的左侧区域 */
}

.explicit::after{
  content: '„';
  font-size: 4rem;
  color: #B42B51;
  position: absolute;
  bottom: -2rem; /* 可按需调整后引号上下位置 */
  right: 0; /* 可按需调整后引号左右位置 */
}

上述代码里的位置数值可以根据你实际使用的字体、行高做微调用到最优效果,该方案下引号完全不参与文本流,不会影响任何诗句的排版缩进,所有行的缩进由.verse-list的padding-left统一控制,完全符合预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:48:04