在单词边界处打破非连字符复合词

Obs*_*vus 22 html css html5 css3 twitter-bootstrap

我正在使用Bootstrap.让我们说我的文字看起来像这样:

"堆栈溢出"

如果文本不适合容器,我可以以某种方式自动确保它像这样打破:

"Stack
-overflow"

代替:

"Stackov
-erflow"

用HTML/CSS?

jay*_*yms 46

你可以插入­(软连字符)

#box {
  font-size:14px;
  font-family:courier;
  width:90px;
  background:yellow;
 }
Run Code Online (Sandbox Code Playgroud)
<div id="box">Stack&shy;overflow</div>
Run Code Online (Sandbox Code Playgroud)

  • 如果你不能使用`&shy;`因为你没有使用(X)HTML(XML,Markdown,纯文本......)的某些变体,你可以使用等效的Unicode字符U + 00AD(`&#x00ad;`in XML). (16认同)

Nen*_*car 21

您可以使用<wbr>标签:

p {
  width: 60px;
  border: 1px solid black;
}
Run Code Online (Sandbox Code Playgroud)
<p>Stack<wbr>overflow</p>
Run Code Online (Sandbox Code Playgroud)

  • 这不会使单词中断,我不认为这是OP正在寻找的. (12认同)

Gau*_*wal 9

不,对于文档"Stackoverflow"是一个单词.如果您使用CSS属性来破坏该单词,那么它将根据可用空间中断.

如果要从特定点打破它,则必须定义它.

你可以使用Stack<wbr>overflowStack-overflow.

如果使用Stack<wbr>overflow,那么它将被打破<wbr>.

p.test1 {
    width: 60px;
    border: 1px solid #000000;
}
Run Code Online (Sandbox Code Playgroud)
<p class="test1">Stack<wbr>overflow</p>
Run Code Online (Sandbox Code Playgroud)


或者,如果使用Stack-overflow和使用CSS属性word-break: keep-all;,它将在连字符处断开:

p.test1 {
    width: 60px;
    border: 1px solid #000000;
    word-break: keep-all;
}
Run Code Online (Sandbox Code Playgroud)
<p class="test1">Stack-overflow</p>
Run Code Online (Sandbox Code Playgroud)

但你必须定义其中一个.