【问题标题】:erratic line wrapping with after pseudo-element带有伪元素后的不稳定换行
【发布时间】:2015-10-27 01:20:57
【问题描述】:

我有一个 html 布局,它在 chrome 和 safari 中以意想不到的方式重排。

我的文档的结构是这样的,每个单词都包裹在一个跨度中,每一行都包裹在一个跨度中,然后将文档包裹在一个div中。为了分隔行,我使用 after 伪元素 as described here

但是,如您所见,换行是不稳定的。这里发生了什么以及如何最好地纠正这种情况?我发现将 after 伪元素从 '\A';到 '\A' 问题似乎消失了,但我不明白为什么。

.bc {
  border: solid 1px green;
  font-size: 25px;
  width: 500px;
  height: 200px;
}

div > span:after {
  content: '\A';
  white-space: pre;
}
<div class="bc"><span><span>HELLO, </span><span>how </span><span>is </span><span>Matilda.</span></span><span><span>MATILDA!, </span><span>kinsman </span><span>to </span><span>the </span><span>seahorses, </span><span>and </span><span>friend </span><span>to </span><span>Franklin.</span></span><span><span>EXTRA, </span><span>niece </span><span>to </span><span>Matilda, </span><span>never </span><span>pleasant </span><span>to </span><span>Emanuel.</span></span></div>

【问题讨论】:

标签: html css pseudo-element


【解决方案1】:

如果您添加word-wrap,它似乎可以正常工作

.bc {
  border: solid 1px green;
  font-size: 25px;
  width: 500px;
  height: 200px;
 /*word-wrap: break-word;*/
}

div > span:after {
  content: '\A';
  white-space: pre;
}
<div class="bc"><span><span>HELLO, </span><span>how </span><span>is </span><span>Matilda.</span></span><span><span>MATILDA!, </span><span>kinsman </span><span>to </span><span>the </span><span>seahorses, </span><span>and </span><span>friend </span><span>to </span><span>Franklin.</span></span><span><span>EXTRA, </span><span>niece </span><span>to </span><span>Matilda, </span><span>never </span><span>pleasant </span><span>to </span><span>Emanuel. </span></span></div>

这是你的意思吗?

【讨论】:

  • 是的,这行得通。但是由于这个例子中没有什么大的词可以打破,我很困惑为什么这个解决方案(以及 OP 中的那个)。
  • 是的,但是为什么会这样呢?第一个长句不需要添加。
  • 我相信white-space: pre; 是这样工作的;尝试使用white-space: pre-wrap;,它可以在没有尾随空格的情况下工作
猜你喜欢
  • 2014-09-22
  • 2012-09-24
  • 2017-07-27
  • 2012-01-08
  • 1970-01-01
  • 1970-01-01
  • 2012-03-11
  • 2022-01-12
  • 2012-04-05
相关资源
最近更新 更多