我无法使用自动换行使用此示例...
<html>
<head></head>
<body>
<table style="table-layout:fixed;">
<tr>
<td style="word-wrap: break-word; width:100px;">ThisStringWillNotWrapThisStringWillNotWrapThisStringWillNotWrapThisStringWillNotWrapThisStringWillNotWrapThisStringWillNotWrapThisStringWillNotWrapThisStringWillNotWrapThisStringWillNotWrap</td>
</tr>
</table>
</body></html>
我记得读过必须指定布局(我做过),但除此之外,我不知道我必须做些什么才能让它工作。我真的希望这能在Firefox中运行。感谢。
编辑: 在Chrome 19和Firefox 12中失败,它适用于IE8。 我试过doctype strict和transitional,都没有用。
答案 0 :(得分:83)
添加:
display: inline-block;
指向td
。
添加:
display: inline-block;
word-break: break-word;
指向td
。
<强> 注意:的强>
请注意,就目前而言,break-word
不是webkit标准规范的一部分;因此,您可能有兴趣使用break-all
代替。这种替代价值提供了无疑是极为激烈的解决方案;但是,它符合标准。
添加:
display: inline-block;
word-break: break-word;
指向td
。
前一段以类似的方式适用于Opera。
答案 1 :(得分:33)
使用适用于所有浏览器的代码(taken from css-tricks)
overflow-wrap: break-word;
word-wrap: break-word;
-ms-word-break: break-all;
/* This is the dangerous one in WebKit, as it breaks things wherever */
word-break: break-all;
/* Instead use this non-standard one: */
word-break: break-word;
/* Adds a hyphen where the word breaks, if supported (No Blink) */
-ms-hyphens: auto;
-moz-hyphens: auto;
-webkit-hyphens: auto;
hyphens: auto;
答案 2 :(得分:5)
这种属性组合对我有帮助:
display: inline-block;
overflow-wrap: break-word;
word-wrap: break-word;
word-break: normal;
line-break: strict;
hyphens: none;
-webkit-hyphens: none;
-moz-hyphens: none;
答案 3 :(得分:5)
max-width: 100px;
white-space: break-spaces;
答案 4 :(得分:2)
工作中断与inline-block
无关。
确保指定width
,并注意父节点中是否有任何覆盖属性。确保没有white-space: nowrap
。
请参见this码笔。
<html>
<head>
</head>
<body>
<style scoped>
.parent {
width: 100vw;
}
p {
border: 1px dashed black;
padding: 1em;
font-size: calc(0.6vw + 0.6em);
direction: ltr;
width: 30vw;
margin:auto;
text-align:justify;
word-break: break-word;
white-space: pre-line;
overflow-wrap: break-word;
-ms-word-break: break-word;
word-break: break-word;
word-break: break-word;
-ms-hyphens: auto;
-moz-hyphens: auto;
-webkit-hyphens: auto;
hyphens: auto;
}
}
</style>
<div class="parent">
<p>
Note: Mind that, as for now, break-word is not part of the standard specification for webkit; therefore, you might be interested in employing the break-all instead. This alternative value provides a undoubtedly drastic solution; however, it conforms to
the standard.
</p>
</div>
</body>
</html>
答案 5 :(得分:1)
让智能休息(破解词)在不同浏览器上运行良好,对我有用的是以下规则:
#elm {
word-break:break-word; /* webkit/blink browsers */
word-wrap:break-word; /* ie */
}
-moz-document url-prefix() {/* catch ff */
#elm {
word-break: break-all; /* in ff- with no break-word we'll settle for break-all */
}
}
答案 6 :(得分:1)
inline-block
在这种情况下没有用解决方案
word-break: normal|break-all|keep-all|break-word|initial|inherit;
white-space: nowrap
未被使用。要更好地理解:
word-wrap
/ overflow-wrap
用于打破溢出其容器的单词
word-break
属性会在一行的末尾断开所有单词,即使是那些通常会换行到另一行且不会溢出其容器的单词。
word-wrap
是历史和非标准财产。它已重命名为overflow-wrap
,但仍是别名,浏览器将来必须支持。许多浏览器(尤其是旧的浏览器)不支持overflow-wrap
,并要求word-wrap
作为后备(所有浏览器都支持)。
如果要取悦W3C,则应考虑将两者都与CSS关联。如果您不这样做,那么仅使用word-wrap
就可以了。
答案 7 :(得分:0)
此代码也有效:
<html>
<head></head>
<body>
<table style="table-layout:fixed;">
<tr>
<td style="word-break: break-all; width:100px;">ThisStringWillNotWrapThisStringWillNotWrapThisStringWillNotWrapThisStringWillNotWrapThisStringWillNotWrapThisStringWillNotWrapThisStringWillNotWrapThisStringWillNotWrapThisStringWillNotWrap</td>
</tr>
</table>
</body></html>
答案 8 :(得分:0)
word-wrap
属性与display:inline-block
一起使用:
display: inline-block;
word-wrap: break-word;
width: 100px;