我在Chrome和IE9中测试过自定义代码<oles-tag> ... </oles-tag>
。
我使用HTML5 doctype <!DOCTYPE html>
。
HTML5不支持自定义标记。代码不会验证,但浏览器无论如何都会解析它。我甚至可以用CSS来定位它......
为什么浏览器会在不是标准化的有效代码时解析自定义标记?
为什么我不应该只为语义代码使用自定义标签?
答案 0 :(得分:9)
为什么浏览器解析自定义标签,当它不是标准化且有效的代码?
使其向前兼容。试想一下,如果您不可能在旧浏览器中设置<article>
元素,因为在编写旧浏览器时<article>
不存在。那太可怕了,不是吗? 瞪眼IE
为什么我不应该只为语义代码使用自定义标签?
因为没有其他人(程序)识别这些标签,因此它们不是语义的。像<article>
这样的元素被认为是语义的原因是因为它们具有已建立的用法。当您使用没有确定用途的自定义元素时,可以通过多种方式对其进行解释,从而导致程序之间的不一致。 强调<b>
和<i>
答案 1 :(得分:0)
浏览器往往对标记宽容。这在一定程度上源于采用复杂SGML语法的困难。
在90年代后期出现了严格的运动,导致了XHTML的创造,每一个错误都会导致灾难性的失败。如果您更喜欢严格,则似乎有XHTML adapted for HTML5的版本。
XHTML还有另一个有趣的功能 - 您可以根据需要定义和使用自定义标记,实际上这是one of the two major reasons的开发。