为什么元素<u>根据VS2008被认为是过时的?</u>

时间:2009-07-03 11:18:41

标签: html visual-studio-2008

当我使用&lt; u&gt;时,为什么在Visual Studio中收到以下消息?元件?

  

“元素'u'被认为是过时的   建议使用较新的构造“

它老了吗?

9 个答案:

答案 0 :(得分:21)

从HTML4开始,不推荐使用下划线标记。可以找到W3C参考here。原因是视觉样式不属于标签,但应移至样式表。

您可以改为使用text-decoration: underline样式:

<span style="text-decoration: underline">some underlined text</span>

要删除下划线,请使用text-decoration:none禁用下划线。

答案 1 :(得分:10)

这是因为W3C决定弃用它。

这是因为所有布局和设计都应该使用CSS完成。在HTML中,理想情况下只存在结构

<u>仅为文本添加特定的字体装饰,但没有结构信息。

答案 2 :(得分:8)

因为根据w3c已被折旧。阅读here 任何样式/格式都应该是css的责任,但我确信VS遵循w3c准则。

答案 3 :(得分:4)

该标记与其他文本格式/样式元素一起被弃用。

'in'要做的是使用正确的标记并使用样式表应用样式。

答案 4 :(得分:1)

正如其他人所说,&lt; u&gt; (以及类似元素)已在最新版本的Web标准中弃用,因为人们普遍认为样式和标记应该分开。

而且,正如其他人所说,您可以通过使用内联样式的跨度来使HTML有效。真的,那不是更好。有效吗?是。但它只是简单地使用&lt; u&gt;而不是别的。标签首先。

最佳语义解决方案取决于上下文。为什么要在文本中插入下划线?我能想到三个用例:标题,链接和文本强调。在每种情况下,您应该将样式表中的css应用于相关的语义元素:&lt; h1-6&gt;对于标题,&lt; a&gt;对于链接,&lt; em&gt;强调文本。如果您需要各自的变体,请根据需要应用css类和ID。

答案 5 :(得分:0)

&LT; U&GT;是被弃用的元素族的一部分。 &LT b取代;和&lt; i&gt;被替换为&lt; strong&gt;和&lt; em&gt;分别需要使用css来实现效果。

原因是HTML不应该决定某些内容是否加下划线或加粗,这种类型的信息应该是样式的一部分,因此是样式表的完美候选者。

答案 6 :(得分:0)

不仅仅是HTML4,<u>HTML5中也被认为已过时。

有趣的是,<b><i>保持一致。您可以尝试在他们的邮件列表中争论,或者只是继续使用您之前喜欢的标签。浏览器不会提供支持,你很好。

我记得拉出<u>的决定背后的原因是它缺乏统一的语义或类似的东西。至少当你看到粗体文字时,你知道你应该读它更大声

答案 7 :(得分:0)

可能意味着在某些较小程度上会丢失CSS引用“&#39; u&#39;标签

一个小但令人讨厌的结果是输入控件的ACCESS键。

<u>F</u>irst Name <input ... AccessKey="f"..

OR

<span class="ul">F</span>irst Name

使用标记的第一种方法确实表示用户指定的随机类名称不具有的含义。 TAGS是固定的 - 类名是任意的。

就标准而言,它是一种没有区别的区别。这个决定是任意的,主观的和反复无常的,从假定的专家纯粹主义者传下来。

答案 8 :(得分:-5)

如今,使用HTML而非CSS格式化已被弃用。无论如何,如果您遇到标准合规性问题而拒绝内联格式化,请按照以下简单搜索和替换规则进行操作:

&lt; b&gt;&lt; / b&gt; 替换为&lt; span style = font-weight:bold&gt;&lt; / span&gt;
&lt; u&gt;&lt; / u&gt; 替换为&lt; span style = text-decoration:underline&gt;&lt; / span&gt;
&lt; i&gt;&lt; / i&gt; 替换为&lt; span style = text-font-style:italic&gt;&lt; / span&gt;
&lt; font face = font,otherfont size = number&gt;&lt; / font&gt; 替换为&lt; span style = font-family:font,otherfont; font-size:replace-with-关键字&GT;&LT; /跨度&GT;
&lt; s&gt;&lt; / s&gt; 又名&lt; strike&gt;&lt; / strike&gt; 替换为&lt; span style = text-decoration:line-through&gt ;&LT; /跨度&GT;

字体大小的关键字:xx-small,x-small,small,medium,large,x-large,xx-large
大致相同。

如果您只是完成这些简单的替换,您将体验到......!

  • 符合标准的所有乐趣! (吹嘘权利。)
  • 没有任何好处。 (此CSS不会从单个&lt; style&gt;修改。)
  • 过度标准化的所有痛苦(等等,哪个格式化规则执行此操作&lt; / span&gt;标记再次撤消?屎。)
  • 更多带宽消耗! (进步的代价,只要有人告诉我这对我们有什么帮助。)
  • 减少浏览器支持! (你知道那些仍然使用旧浏览器或极简主义浏览器的人,比如 LYNX 链接 w3m OffByOne 等等?呃......谁在乎?)

哦,是的......

附录:更严重的是,因为现在很多标准纯粹主义者都对纯CSS很难。 CSS背后的大部分支持都避免了常规标记,只是因为它是现代的,所以你应该与时俱进。其他支持来自CSS本身更易于维护的概念,完全忽略了我上面提到的不可维护的混乱。

这不是我有任何反对CSS的东西。这里的要点是,很多人过度地宣传标准,即使以非常不恰当的方式使用它,也会宽恕它。正如我所提到的那样,使用内联格式化CSS替换常规HTML标记的概念实际上被认为是过多的CSS拥护者所取得的进步。他们似乎认为维护标准,模式和设计规则是某种固有的好处,而不是理性地看待它。内联格式有其位置,我认为使用常规HTML标签是合适的,更具可读性。

那些追随者就像那些告诉你是邪恶的人,你永远不应该使用它们。那些将会看到常规堆栈风和放松的人,而是使用缩进的if语句clusterfuck进行十层缩进和深度重复代码。而且,他们会真正认为他们的版本更具可读性和可维护性,即使按照任何理智的标准,它显然不是。有关该切线的更多信息:http://kerneltrap.org/node/553/2131