从我读过的内容(IE 6 - 8除外),旧浏览器将以下HTML5标记视为内联:
文章,旁边,导航,部分,页脚
如果在现代浏览器中打开以下html:
this is the <article>article</article> tag.
它将呈现如下:
this is the
article
tag
为什么HTML5标签在现代浏览器中被视为块级标签,而在旧版浏览器中内嵌?
我还在某处读过旧浏览器将HTML5标签视为div,这意味着块级别。但是,对于旧浏览器如何处理这些标记,我没有明确的答案。
答案 0 :(得分:0)
到目前为止,我发现的最佳资源是this article,从中可以获取以下代码段:
当HTML5元素存在时,基本上有三种可能的结果 在页面中使用:
- 标记被视为错误,完全被忽略。 DOM是 构造就像标签不存在一样。
- 标记被视为错误,DOM节点被创建为 占位符。 DOM的构造如代码所示,但是 tag没有应用样式(被认为是内联元素)。
- 标记被识别为HTML5标记,并且创建了DOM节点 代表它。 DOM的构造如代码所示 标签应用了适当的样式(在许多情况下,作为块 元素)。
醇>作为具体示例,请考虑以下代码:
<div class="outer"> <section> <h1>title</h1> <p>text</p> </section> </div>
许多浏览器(例如Firefox 3.6和Safari 4)都会将其解析为 具有未知子元素(
<div>
)的顶级<section>
元素 在DOM中创建,但作为内联元素处理。<h1>
和。{<p>
元素是<section>
的子元素。因为<section>
是 在DOM中表示,可以为元素设置样式。这是 案例#2。9之前的Internet Explorer将其解析为顶级但看到了
<section>
为错误。因此<section>
被忽略,然后<h1>
和<p>
被解析,都成为<div>
的孩子。结束</section>
是 也被视为错误并跳过。对此有效的理解 浏览器中的代码相当于:<div class="outer"> <h1>title</h1> <p>text</p> </div>
因此,较旧的Internet Explorer浏览器实际上可以很好地恢复 未知元素但创建的DOM结构与其他元素不同 浏览器。因为没有未知的DOM表示 元素,你也不能应用样式。这是案例#1。
当然,支持HTML5的浏览器,如Internet Explorer 9,Firefox 4,Safari 5创建正确的DOM结构并应用 在HTML5中指定的那个元素的默认样式是正确的。