正确使用<del>和<ins>以及它们作为容器的原因

时间:2017-04-26 08:21:55

标签: html html5 insert del

我正在一个用户可以发表评论的网站上工作。我打算在此之前使用git clone -b 2.x git://github.com/cakephp/cakephp.git - 元素。当评论不准确时,它们将使用<ins> - 元素标记为已删除。

我的第一个问题是我是否正确使用了这些元素的语义?

当我在W3C看到这两个元素可以在其中包含块级元素时,我感到很惊讶,因为对于设置为<del>的文本元素通常不是这种情况(不能有宽度,高度等)。我检查了display: inline;display: inline;的计算浏览器值<del>

所以我的第二个问题是浏览器如何使这种特殊行为起作用? (或者它甚至特别? - 我错过了什么吗?)

1 个答案:

答案 0 :(得分:1)

尽量不要将样式(CSS)与HTML内容模型混淆。这些是故意分开和正交的概念。唯一的链接是某些HTML元素具有一致的默认样式。

虽然ins和del可以按照你在HTML4中描述的方式使用,但HTML5使这种分离更加明显,因为它不使用术语&#34; block&#34;和&#34;内联&#34;。这些术语留给CSS。 HTML5的内容模型使用单独的分类,包括&#34;流&#34;,&#34;短语&#34;,在这种情况下很重要,"transparent"

内容模型用于辅助文档内容的含义。但浏览器并不关心其含义,只关心如何渲染它。

CSS提供了关于如何在内联元素内呈现块元素的明确规则,完全不论HTML的内容模型限制如何。请参阅此答案:Is it wrong to change a block element to inline with CSS if it contains another block element?

所以,除了使用普通的CSS规则来处理它之外,没有任何行为不是特殊的&#34;,并且浏览器不需要做任何事情。

关于你的第一个问题,很难判断是否存在错误&#34;应该暗示使用<del>。如果评论者打算撤回该不准确性,那么<del>将是合适的,否则可能不合适。

相关问题