我正在尝试在列表项中包含多个span
元素。当然,它们被认为是inline
。当我将word-wrap: break-word
属性添加到其中一个span
元素时,我希望这些单词能够换行,但该元素也会换行。
在this fiddle中,您可以清楚地看到带有span
类的message
元素位于元素name
之后。我希望这些元素内联,但是第二个用类message
进行自动换行。
我想要实现的目标可以与twitch.tv聊天消息结构进行比较。
邮件的twitch.tv HTML如下:
<li class="ember-view message-line chat-line" id="ember6565">
<div class="indicator"></div>
<span class="timestamp float-left">3:34</span>
<span class="badges float-left"></span>
<span class="from" style="color:#D2691E">yourusername</span>
<span class="colon">:</span>
<span class="message" style="undefined">message here</span>
</li>
此致
答案 0 :(得分:6)
也许以下可能是你需要的。
我将ViewController
添加到white-space: nowrap
元素,以将内联子元素保留在一行上。
然后,您需要将li
添加到white-space: normal
范围,以便按照您需要的方式保留包含字词。请注意,.message
是继承的,因此您需要将其重置为white-space
以获取内嵌范围。
normal
&#13;
.messages {
list-style-type: none;
width: 100px;
border: 1px dotted blue;
margin: 0;
padding: 0;
}
.messages li {
white-space: nowrap;
}
.messages li .message {
white-space: normal;
word-wrap: break-word;
background-color: tan;
}
&#13;
答案 1 :(得分:2)
这里的问题是
唯一的解决方案是将white-space: pre;
添加到容器中:
.messages li .message{
white-space: pre;
}
请记住,两个span
标记之间的空格仍然归类为空间节点,因此它被视为在这两个span
容器之间存在空格字符。
仅供参考:我也很难找到一个满意的解决方案issue sometime last year。
答案 2 :(得分:2)
不要在跨度之间添加空间。这是关键。这允许跨度内联。
我希望这会有所帮助。请查看 fiddle