4 回答
官方差异取决于您选择视为官方的 HTML 规范或草案。
在 HTML 4.01 规范中,u
意味着带下划线的文本样式,而ins
意味着其内容已“插入 [...] 相对于不同版本的文档(例如,在立法者需要查看更改的立法草案中)。ins
未指定渲染;相反,描述了一些可能的渲染。实际上,浏览器大多使用下划线。还有一种形式上的语法差异,u
它只允许文本级内容,而ins
也可能包含块。
在 HTML5 草案中,ins
本质上是相似的,但措辞不同,并且有一个明确的建议,或者可能是(半)建议,默认渲染使用下划线(参见10.3.4 Phrasing content there)。之前从草案中u
排除,现在添加,但具有虚构的含义:“u 元素表示一段文本,具有未明确表达但明确呈现的非文本注释,例如将文本标记为中文文本中的专有名称(中文专有名称标记),或将文本标记为拼写错误。” 如果这对您没有意义,那么您不是唯一一个。并且u
具有作为建议或推荐的默认渲染的下划线。
在实践中,效果基本相同,只是ins
一些旧浏览器会忽略标签。一些异国情调的浏览器可以使用不同的渲染。我没有看到任何浏览器、搜索引擎或任何其他相关软件对两者进行区分的证据;它们的“语义差异”没有实际影响。
ins
但是,在某种意义上,除了插入的文本之外,我不会使用任何东西,只是因为某些未来的浏览器可能会以某种方式处理它,这对插入的文本有意义,但不是其他方式。ins
仅用于下划线不会有明显的好处:u
标记更短,支持更广泛。再说一次,您应该在网页上为文本(链接除外)加下划线的情况很少见。
ins
是一个语义标签:它表示已插入的元素(另请参见del
删除的元素),同时u
为引擎提供将元素渲染为下划线的指令。
一些引擎可能决定呈现ins
为,u
但您可以使用“语义”来决定以其他方式呈现它(使用 CSS)。说到 CSS,它渲染<u>
无用,只会让样式维护变得更加困难,就像<b>
,<center>
等等。
至于其他版本标签,del
它并没有被广泛使用,也不清楚为什么应该这样。
参考 :
http://www.w3.org/TR/html-markup/ins.html
ins
有一个含义:此文本是在以后插入的。u
没有任何意义,它只是告诉浏览器在上面加一些下划线。(尽管 CSS 可以像任何其他元素一样覆盖它,但该元素自 4.0 以来一直毫无意义的原因之一)ins
是在 4.0 中引入的,并且仍然是最新的。u
至少在 2.0 中引入(HTML1.0 从未真正停止工作,因此 2.0 是第一个真正的标准),并在 4.0 中弃用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>
.ins
有一个可选cite
属性,给出文档的 URI(或文档中的片段,可能与它所在的文档相同)解释更改,并datetime
以W3 日期时间格式给出更改的日期。
因此:
- 如果下划线表示添加的内容,请使用
ins
. - 如果您想指示添加的内容,但不是通过下划线,请使用
ins
并使用 CSS 来更改它的显示方式。 - 永远不要使用
u
。HTML 的历史是一场噩梦,我们正试图从中醒来。 - 如果您出于其他原因想要下划线,那么要么选择最符合您的意思的元素,使用
div
或者span
如果您真的不能做得更好,然后使用 CSS 来给它加下划线。