好吧,这真的让我感到困惑。我在div中有一些内容,例如:
<div style="background-color: green; width: 200px; height: 300px;">
Thisisatest.Thisisatest.Thisisatest.Thisisatest.Thisisatest.Thisisatest.
</div>
但是,由于“单词”太长,内容溢出了DIV(如预期的那样)。
如何在必要时强制浏览器“破坏”单词以适合其中的所有内容?
好吧,这真的让我感到困惑。我在div中有一些内容,例如:
<div style="background-color: green; width: 200px; height: 300px;">
Thisisatest.Thisisatest.Thisisatest.Thisisatest.Thisisatest.Thisisatest.
</div>
但是,由于“单词”太长,内容溢出了DIV(如预期的那样)。
如何在必要时强制浏览器“破坏”单词以适合其中的所有内容?
Answers:
它甚至可以在IE6中使用,这真是令人惊喜。
word-wrap: break-word
已被替换为overflow-wrap: break-word;
可在所有现代浏览器中使用。IE,作为一个失效的浏览器,将永远依赖不推荐使用的非标准版本word-wrap
。
word-wrap
今天,它的现有用法仍然有效,因为它是overflow-wrap
该规范的别名。
table-layout: fixed;
word-wrap: break-word
不适用于我,但word-break: break-word
正如下面的@rahul所建议的那样。
我不确定浏览器的兼容性
word-break: break-all;
您也可以使用<wbr>
标签
<wbr>
(断字)表示:“浏览器可以根据需要在此处插入换行符。” 如果浏览器认为不需要换行,则什么也不会发生。
可以将其添加到“跨浏览器”解决方案的公认答案中。
资料来源:
.your_element{
-ms-word-break: break-all;
word-break: break-all;
/* Non standard for webkit */
word-break: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
-ms-hyphens: auto;
hyphens: auto;
}
我只是在谷歌搜索同一问题,然后在此处发布我的最终解决方案。这也与这个问题有关。
您可以通过为div赋予样式来轻松地做到这一点word-wrap: break-word
(并且您可能还需要设置其宽度)。
div {
word-wrap: break-word; /* All browsers since IE 5.5+ */
overflow-wrap: break-word; /* Renamed property in CSS3 draft spec */
width: 100%;
}
但是,对于表,您还需要应用:table-layout: fixed
。这意味着列的宽度不再是固定的,而是仅基于第一行中列的宽度(或通过指定的宽度)定义。在这里阅读更多。
样例代码:
table {
table-layout: fixed;
width: 100%;
}
table td {
word-wrap: break-word; /* All browsers since IE 5.5+ */
overflow-wrap: break-word; /* Renamed property in CSS3 draft spec */
}
width: 100%;
是让它在FF和chrome上为我工作的唯一方法!
发现在使用flexbox并依赖时,使用Firefox可以在除Firefox(v50.0.2)之外的大多数主要浏览器(Chrome,IE,Safari iOS / OSX)上使用width: auto
。
.your_element {
word-wrap: break-word;
overflow-wrap: break-word;
word-break: break-word;
}
注意:如果您不使用自动前缀,则可能需要添加浏览器供应商前缀。
要注意的另一件事是
用于空格的文本可能会导致中间单词断行。
我用下面的代码解决了我的问题。
display: table-caption;
删除white-space: nowrap
(如果有)。
实行:
white-space: inherit;
word-break: break-word;
空白由浏览器保留。文本将在必要时自动换行并换行
.pre-wrap {
white-space: pre-wrap;
word-break: break-word;
}
演示
td {
word-break: break-word;
white-space: pre-wrap;
-moz-white-space: pre-wrap;
}
table {
width: 100px;
border: 1px solid black;
display: block;
}
<table>
<tr><th>list</th>
<td>
1.longtextlongtextlongtextlongtextlongtextlongtextlongtextlongtextlongtextlongtextlongtextlongtext
2.breaklinebreaklinebreaklinebreaklinebreaklinebreaklinebreaklinebreaklinebreaklinebreaklinebreakline
</td>
</tr>
</table>
正如@ davidcondrey的答复中提到,有不只是ZWSP,还害羞的­ ­
,可以在很长的使用,构建字(德国认为荷兰或)有当场被打破,你希望它是。不可见,但在需要时提供连字符,从而使单词始终保持连接和线条填充。
这样,单词luchthavenpolitieagent可能会被注释为lucht­haven­politie­agent
比单词的音节更长的部分。
尽管我从没有读过任何官方的相关内容,但是在结构的单个单词中,这些软连字符在浏览器中的优先级要高于官方的连字符(如果它们有扩展名的话)。
实际上,没有浏览器能够自行破解如此长的构造单词。在较小的屏幕上会产生一个新行,或者在某些情况下甚至会变成一个单词行(例如,当其中两个构造单词跟随时)。
仅供参考:机场警察是荷兰人