我正在一个用户可以发表评论的网站上工作。我打算在此之前使用git clone -b 2.x git://github.com/cakephp/cakephp.git
- 元素。当评论不准确时,它们将使用<ins>
- 元素标记为已删除。
我的第一个问题是我是否正确使用了这些元素的语义?
当我在W3C看到这两个元素可以在其中包含块级元素时,我感到很惊讶,因为对于设置为<del>
的文本元素通常不是这种情况(不能有宽度,高度等)。我检查了display: inline;
和display: inline;
的计算浏览器值<del>
。
所以我的第二个问题是浏览器如何使这种特殊行为起作用? (或者它甚至特别? - 我错过了什么吗?)
答案 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>
将是合适的,否则可能不合适。