【发布时间】:2020-04-28 19:33:32
【问题描述】:
在 FF 45 上运行以下 sn-p 时,两个框中的第一个仅显示一行,如“ThisIsATest...”,而第二个框显示两行,整个文本除以连字符。在 Chrome 和 Edge 上,两个框都显示两行。我的问题:如何使第一个文本在 FF 中的连字符后中断?很明显,这和下文的长度有关,但这是什么原因呢?
.test {
width: 100px;
overflow: hidden;
text-overflow: ellipsis;
background: #00bcd4;
margin-bottom: 1rem;
}
<div class="test">
ThisIsATest-Test
</div>
<div class="test">
ThisIsATest-Test123
</div>
我想实现这种行为(在 Chrome 和 Edge 中已经可以使用):如果文本不包含任何连字符或空格,请不要打断它并显示“...”。 如果文本中包含空格或连字符,请在必要时将其断开。
更新:
您可以删除 text-overflow: 省略号并获得类似的结果。现在,文字有时会被截断,有时会换行。我看不出为什么两个相似的 div(一个内容多一点)应该表现出如此不同的行为。
.test {
width: 100px;
overflow: hidden;
background: #00bcd4;
margin-bottom: 1rem;
}
<div class="test">
ThisIsATest-Test
</div>
<div class="test">
ThisIsATest-Test123
</div>
在 Windows 10 上的 FF 45.0.1 中,它目前看起来像这样:
【问题讨论】:
-
Firefox 中的行为是正确的。由于某种原因,Chrome 没有按应有的方式显示省略号。但这不是整体问题,我知道。
-
为什么 FF 中的行为有时会显示新行而有时不会被认为是正确的?这对我来说看起来不太一致......
-
您将溢出指定为省略号。 Firefox 正在这样做,而 Chrome 则没有。我不确定你是否想要那个。
-
我更新了问题 - 请参阅我的新代码示例。删除 text-overflow: ellipsis 没有帮助。对我来说,这看起来像是一种“随机”行为。这两个盒子的区别在哪里?只有它的内容。为什么有时文本会在边缘被截断,有时(在添加更多字符后)会跳转到新行?