如何在固定的宽度范围内换行或破坏长文本/单词?


104

我想创建一个具有固定宽度的跨度,当我在跨度中键入任何内容时,例如<span>lgasdfjksdajgdsglkgsadfasdfadfasdfadsfasdfasddkgjk</span>一串不等间隔的长字符串,单词会中断或换行到下一行。

有任何想法吗?

Answers:


191

您可以使用CSS属性word-wrap:break-word;,如果单词的跨度太长,则会使单词断裂。

span { 
    display:block;
    width:150px;
    word-wrap:break-word;
}
<span>VeryLongLongLongLongLongLongLongLongLongLongLongLongExample</span>


1
对于asp.net标签控件,效果很好。谢谢!
etlds 2014年

41
添加white-space: normal有助于覆盖可能妨碍您使用的外部样式:) .. inline-block以及block
Katia 2015年

打破块元素内的两个范围怎么办?
丹尼尔·斯普林格

对于那些在使用此答案后仍然遇到问题的人,请确保指定“宽度”,否则可能无法正常工作
-Staccato

它需要有一个宽度才能知道在哪里断裂
DFSFOT



3

默认情况下,a spaninline元素...因此不是默认行为。

您可以span通过将其添加display: block;到CSS中来实现这种行为。

span {
    display: block;
    width: 100px;
}


0

只是为了扩展问题的实际范围并作为给定答案的附录:有时人们可能发现有必要指定更多选择器。

通过将整个范围定义为display:inline-block,您可能很难显示图像。

因此,我更喜欢这样定义一个范围:

span {
  display:block;
  width:150px;
  word-wrap:break-word;      
}
p span, a span,
h1 span, h2 span, h3 span, h4 span, h5 span {
  display:inline-block;
}
img{
  display:block;
}

0

就我而言,display:block违反了设计。

max-width物业只是救了我。

对于样式,您可以使用 text-overflow: ellipsis

我的代码是

max-width: 255px
overflow:hidden
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.