4

HTML5不应该在IE9中工作吗?它没有像我预期的那样工作。

这是我的 HTML5 代码:

<!DOCTYPE html>
<html>
<head><title>

    Dripel - Welcome

</title>
    <!--[if lt IE 9]> 
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
    <![endif]-->
</head>
<body>
    <header>Welcome to Dripel</header>
    <section id="main">

        I am under development. Please check back later.

    </section>
    <footer>
    </footer>
</body>
</html>

您可以在http://www.dripel.com/查看它。

在 IE 9 中,<header>and<section>元素被显示为内联。请注意,我目前没有使用任何 CSS。

知道发生了什么吗?

4

3 回答 3

1

对于其他浏览器也是如此,而不仅仅是 IE。Firefox 3.6 也可以观察到相同的行为。

由于 HTML5 只是一个工作草案,浏览器供应商还没有为这些元素创建默认样式表,因此默认元素是内联显示的。

display: block如果要使用这些元素,请使用提供这些元素的重置样式表,例如:

article, aside, footer, header, hgroup, nav, section {
    display: block;
}

复制自 Chrome 的用户代理 CSS :)


如果您想了解更多信息,那么请阅读HTML5 上的 beta 发行说明。它没有明确声明 IE9“支持”那些 HTML5 元素。您的支持概念在这里也定义不明确-您是什么意思支持?像上面那样的 UA 样式表?支持通用的未指定元素?(IE9 有一个特性,所以你不需要一个小脚本在使用它们之前创建元素。)

HTML5 规范只讨论了每个元素的语义,并没有讨论浏览器应该如何显示它们。那么你期待一个“支持”HTML5 的浏览器吗?

于 2010-09-22T07:05:30.237 回答
1

根据 Dive into HTML5的说法,Internet Explorer 9 的最终版本不会有这个问题

所以我认为你看到这个是因为 IE9 仍处于测试阶段。你是对的,当它发布时你不应该看到这个。

无论如何,可能值得包含display: blockHTML5 元素的显式。您(通常)永远不知道何时有人会在 HTML5 之前的浏览器中查看您的代码。

于 2010-09-22T11:04:02.140 回答
0

IE 9 支持部分 HTML5。所有其他浏览器也是如此。HTML5 还没有完成,IE 9 也没有完成,没有浏览器支持所有的 HTML5。例如,我知道目前还没有浏览器<style scoped>支持<iframe seamless>

我不希望任何浏览器在一个版本中支持所有 HTML5。HTML5 有很多新功能,而且还处于不断变化的状态。浏览器一次实现一个功能,有时带有前缀以避免以后不兼容,有时在 beta 或开发版本中,以便可以在更广泛的发布之前对设计进行测试。不可能一口气写出一个完美的规范,然后让每个人一口气实现它;相反,特性是通过实验实现的,规范是围绕它们编写的,事情是固定的,规范是更新的,等等,直到每个人都对这一切都很好并且在不同浏览器之间以兼容的方式实现感到高兴。在所有 HTML5 中实现所有这些还需要相当长的时间。

于 2010-09-22T21:59:41.283 回答