Answers:
有几种方法可以防止内容换行。使用
是一种方法,并且可以在单词之间很好地工作,但是在空元素和某些文本之间使用它不会产生明确的效果。对于将图像用作图标的更合逻辑且更易于访问的方法,同样适用。
最健壮的选择是使用nobr
标记,它是非标准的,但得到普遍支持,即使禁用CSS也可以使用:
<td><nobr><i class="flag-bfh-ES"></i> +34 666 66 66 66</nobr></td>
(
在这种情况下,您可以但不必使用空格代替。)
另一种方法是nowrap
属性(不建议使用/已过时,但仍然可以正常工作,除了一些罕见的怪癖):
<td nowrap><i class="flag-bfh-ES"></i> +34 666 66 66 66</td>
然后是CSS方式,它可以在支持CSS的浏览器中工作,并且需要更多代码:
<style>
.nobr { white-space: nowrap }
</style>
...
<td class=nobr><i class="flag-bfh-ES"></i> +34 666 66 66 66</td>
nobr
;没有了。
nobr
它仍然被弃用,并且“一定不能使用”。
在某些情况下(例如,由JavaScript生成并插入的html),您可能还想尝试插入零宽度的连接器:
.wrapper{
width: 290px;
white-space: no-wrap;
resize:both;
overflow:auto;
border: 1px solid gray;
}
.breakable-text{
display: inline;
white-space: no-wrap;
}
.no-break-before {
padding-left: 10px;
}
<div class="wrapper">
<span class="breakable-text">Lorem dorem tralalalala LAST_WORDS</span>‍<span class="no-break-before">TOGETHER</span>
</div>
这是真正的解决方案:
<td>
<span class="inline-flag">
<i class="flag-bfh-ES"></i>
<span>+34 666 66 66 66</span>
</span>
</td>
CSS:
.inline-flag {
position: relative;
display: inline;
line-height: 14px; /* play with this */
}
.inline-flag > i {
position: absolute;
display: block;
top: -1px; /* play with this */
}
.inline-flag > span {
margin-left: 18px; /* play with this */
}
例如,总是在文本之前的图像: