我知道这个标签可以很容易地被<span class="nowrap">
和一点点CSS取代,但在现实生活中,我常常发现<nobr>
标签更合适。这不是关于风格,而是关于内容。例如<nobr>V. V. Putin</nobr>
(俄语排版的姓氏和名字不应该换行,我认为类似的规则适用于其他语言)。
我想弃用意味着有更好的东西,但我看不出造型比单独的标签更好。当然,有些地方应该使用CSS。我想念一下吗?
答案 0 :(得分:44)
它不被弃用,因为它从一开始就不是标准。
HTML(理论上)是一种语义标记语言。它描述了文档的结构和语义以及与其他资源的关系。
HTML不应该描述演示文稿。在浏览器大战期间添加了一堆表示功能。其中一些变得标准化了。当CSS出现时,大多数人随后都被弃用了。
CSS是一种描述演示文稿的语言。如果你有一大块文本不应该有换行符,那通常是一个介绍问题,所以CSS是正确的做法。
异常通常由不间断的空格(
)处理。
答案 1 :(得分:12)
您可以随意使用obsolete /非标准<nobr>
HTML标记 - ,只要您在CSS 中定义它。
几乎可以保证,此元素名称永远不会被用于除原始行为之外的任何任务,并且此名称描述了您将在CSS中定义的操作,使人们可以直观地查看您的HTML。
Custom elements(包括过时的元素)会将您的代码fail to validate设为HTML。
您的CSS需要如下所示:
nobr { white-space: nowrap; hyphens: none; }
您可能会或可能不想要(或需要)hyphens: none;
部分,但我已将其添加为完整性,因为看起来某些<nobr>
(用于?)的实现也会抑制连字符white-space: nowrap;
1}}不这样做。
这会将white-space
定义为nowrap
,它会抑制空白区域内的换行符,将hyphens
定义为none
,这样可以防止在单词内打破(包括< / em>忽略“建议换行符”的单词中的字符。)
答案 2 :(得分:4)
愚蠢。这是唯一的原因。
<nobr>
受到普遍支持,因为需要传达所附内容语义单个单元的事实,因此不应将其拆分为多行。
答案 3 :(得分:3)
我在w3c mailing list上发现了这个有趣且非常有说服力的评论:
&LT; NOBR&GT;不能被弃用,因为它从未成为过渡性W3C HTML版本的一部分;它纯属专有。
是的。所以从来没有,也永远不会成为规范的一部分。只是缺少某些东西&#39;使用CSS添加。
答案 4 :(得分:2)
实现你想要的正确方法是声明“V. V. Putin”是一个专有名词,并在CSS中定义这样一个专有名词不应该被打破。
<span class="propernoun">V. V. Putin</span>
并在CSS中定义
.propernoun {
white-space: nowrap;
}
因为... HTML不是关于风格,而是关于内容。基本上,这与OP建议的相同,但class =“nowrap”中的nowrap描述了html中的表示属性,它应该在样式表中。
答案 5 :(得分:0)
这是因为当<nobr>
除了样式之外没有任何语义时,正确的标签应该语义有用。我想这就是为什么<center>
和类似的样式标签被弃用的原因相同。
答案 6 :(得分:0)
如前所述,由于俄罗斯的印刷术,姓名不得中断:因此, 是 一些语义。因此,正如您自己说的那样,让我们使用有意义的<nobr>..</nobr>
标签,而不是通过<person>..</person>
格式标记来标记名称。而且,您可以根据需要设置名称的样式,即通过white-space: nowrap;
规则为所有页面或仅为俄语本地化。