html - css 仅在没有空格时中断单词

标签 html css word-wrap word-break

我有这个代码:

.mydiv {
  display: table;
  table-layout: fixed;
  width: auto;
  max-width: 448px;
  height: 56px;
}

.mydiv span {
  display: table-cell;
  vertical-align: middle; 
  overflow: hidden;
}
<div class="mydiv">
  <span></span>
</div>

这在大多数情况下都可以正常工作,因为默认情况下,如果文本长于一行,则在最近的空格处换行,并且单词永远不会被分成半个单词。 好。

但是,在句子没有空格的唯一情况下(这永远不会发生,但人就是人),界面会中断,然后长单词将保留在一行上。

有没有一种方法可以确定 css 的优先级,这样,如果有空格,则在不剪切单词的情况下剪切句子(word-wrap: break-word;)但如果单词大于一行,则换行,切断单词(word-break:break-all;)以避免视觉灾难。按照这个顺序。

到目前为止,如果我使用“word-wrap: break-word;”,一个长单词将保留在一行中,无论其长度如何,如果我使用“word-break: break-all;”即使之前有空位,单词也会被打断。 这些标准解决方案都没有帮助。

如有任何帮助,我们将不胜感激。

我最好使用 CSS 解决方案,但如果不可能,也可以使用 JS/jQuery 解决方案。

PS:我需要 div 具有自动宽度和最大宽度,我需要 span 保持表格单元格。

最佳答案

您可以使用 word-wrap: break-word 来完成,但您必须设置 width value属性100%以启用响应能力:

.mydiv {
  display: table;
  table-layout: fixed;
  width: 100%; /* responsiveness */
  max-width: 448px;
  height: 56px;
  border: 1px solid; /* just for demo */
}

.mydiv span {
  display: table-cell;
  vertical-align: middle; 
  overflow: hidden;
  word-wrap: break-word; /* added */
}
<div class="mydiv">
  <span>looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong word</span>
</div>
<br>
<div class="mydiv">
  <span>short word ... short word ... short word ... short word ... short word ... short word ... short word ... short word ...</span>
</div>

关于html - css 仅在没有空格时中断单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48162633/

相关文章:

html - 将图像放在侧面菜单中( ionic )

html - 无法使用 Firebug 判断是什么导致了 div 之间的空白

java - JTextPane 使用 JButton 在没有空间的情况下换行和展开长单词

algorithm - 最好的自动换行算法?

html - 如何使带有固定标题的表格可滚动

javascript - 如何使用 Dreamweaver 使用 javascript 在 html 中实现文本中断

html - 列和页脚的 CSS + Bootstrap 问题

javascript - onclick ="document.forms[0].submit();"和表单提交的区别

javascript - jQuery 模式在关闭和打开后不显示名称

html - 用 CSS 打断长单词