<u> 标签和 <ins> 标签有什么区别?

10

这两个标签有什么区别?它们看起来做的事情一样。

<p>My favorite color is  <ins>red</ins>!</p>



<p>My favorite color is  <u>red</u>!</p>

http://coding.smashingmagazine.com/2011/11/18/html5-semantics/ - Waleed Khan
<u>已经被弃用,而<ins>则没有。有点这个意思。 - Roddy of the Frozen Peas
4个回答

14

语义。<ins>标签表示在内容首次发布后插入的内容。<u>标签仅用于下划线,没有实际意义。

参考资料:<ins><u>


9
官方的区别取决于您选择视为官方的HTML规范或草案。按照HTML 4.01规范,u表示下划线文本样式,而ins表示其内容已被“插入[...]到文档的不同版本中(例如,在立法草案中,立法者需要查看更改)。 ins的呈现未指定;相反,描述了一些可能的呈现方式。在实践中,浏览器大多使用下划线。还有一个正式的语法差异是,u仅允许文本级内容,而ins也可以包含块。
在HTML5的草案中,“ins”基本上与“u”相似,但用词不同,并具有明确的建议或推荐,即默认呈现使用下划线(请参见10.3.4措辞内容)。之前,“u”被排除在草案之外,现在已经添加,但具有发明的含义:“u元素表示一段带有未言明但显式呈现的非文本注释的文本范围,例如在中文文本中标记文本为专有名称(中文专有名称标记)或标记文本拼写错误。”如果这对你来说没有意义,你并不是唯一一个。而“u”作为默认呈现建议或推荐使用下划线。
实际上,效果大致相同,只是一些旧的浏览器会忽略“ins”标签。某些奇特的浏览器可能使用不同的呈现方式。我没有看到任何证据表明任何浏览器、搜索引擎或其他相关软件在它们之间做出任何区别;它们的“语义差异”没有实际影响。
然而,除了在某种意义上插入的文本之外,我不会使用 ins 用于任何其他内容,因为一些未来的浏览器可能会以对插入文本有意义但不适用于其他情况的方式处理它。而且仅仅为了下划线使用 ins 不会带来实际的好处: u 是更短的标记并且得到了更广泛的支持。但再说一遍,在网页上除链接外需要加下划线的情况很少见。

4

ins是一个语义标签:它表示已插入的元素(有关删除元素,请参见del)。而u则指示引擎将元素呈现为下划线。

一些引擎可能会决定将ins呈现为u,但您可以使用“语义含义”来决定以其他方式呈现它(使用CSS)。说到CSS,它使<u>变得无用,并且使样式维护更加困难,就像<b><center>等一样。

至于另外一个编辑标签del,它并没有被广泛使用,也不太清楚它应该被使用在哪里。

参考:

http://www.w3.org/TR/html-markup/ins.html

http://www.w3.org/TR/html-markup/del.html

http://www.w3.org/TR/html-markup/u.html


Ins自HTML4.0起就一直存在。然而,在HTML5中,U已经过时了,因为它真的没有什么用处。 - Jon Hanna

2
  1. ins有一个含义:这段文字是后来加入的。
  2. u没有实际意义,只是告诉浏览器在下面加些下划线。尽管CSS可以像任何其他元素一样覆盖它,但这个元素自从4.0版本以来就变得毫无意义了。
  3. ins是在4.0版本中引入的,并仍然使用。
  4. u是在至少2.0版本中引入的(HTML1.0从未真正停止开发,因此2.0是第一个真正的标准),并在4.0版本中被弃用。
  5. u只能用于内联元素,例如 <p><u>this is valid</u></p> 是有效的,但是 <u><p>this makes no sense</p></u> 没有意义。另一方面,ins是极少数既可以是块级元素又可以是内联元素的元素之一(在5.0中还有更多的内联元素获得了这个状态)。因此,<p><ins>this is valid</ins></p><ins><p>this is also valid</p></ins> 是有效的。
  6. ins具有可选的引用 属性,用于指定解释更改的文档的URI(或文档内的片段,可能是它所在的同一文档)和datetime属性,其中包含更改日期以W3日期时间格式

因此:

  1. 如果要用下划线表示添加的内容,请使用ins
  2. 如果您想表示添加的内容,但不要下划线,请使用ins并使用CSS来更改其外观。
  3. 永远不要使用u。HTML的历史就像一场噩梦,我们正在试图从中醒来。
  4. 如果您想要下划线用于其他原因,请选择最符合您意思的元素,如果实在找不到更好的,可以使用divspan,然后使用CSS来添加下划线。

1
<u>在HTML5中并不过时。自2011年4月以来,它一直是符合规范的元素。请参见http://lists.w3.org/Archives/Public/public-html/2011Apr/0212.html。 - Alohci
感谢@Alohci的建议(说实话,我认为这是更好的决定,要么也去掉b和i,要么保留u)。 - Jon Hanna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接