3

我即将为网页设计一个新的布局,并想利用这一刻来实现一些 html5 标记。

我首先想到的是语义元素(导航、标题、文章..)

检查http://caniuse.com/#feat=html5semantic后,我注意到 IE8(及以下)不支持这些元素。这可能意味着我无法对期望连贯结果的语义元素进行样式设置。

该网站从 IE7/8 浏览器收到大量流量,我不知道如何继续。我听说过modernizr 和html5shiv,但我不知道现在最好的标准是什么..

4

4 回答 4

3

您可以为它们设置样式。您只需运行HTML5shivModernizr。您还想添加一些 CSS 以使它们在默认情况下被阻止。

article, header, nav, section, footer
{
    display: block;
}
于 2012-07-26T10:13:30.347 回答
3

除了通过客户端脚本之外,没有办法让旧版本的 IE 识别新元素。如果您决定可以忽略非 JavaScript 的使用,您可以使用其他答案中提到的一些工具,或者您可以自己动手——该技术很奇怪,但根本不是火箭科学,例如

 <script>
 document.createElement('nav');
 document.createElement('header');
 document.createElement('article');
 </script>

除了使用新元素之外,更强大的解决方案是使用div带有class(或)属性的标记,例如id

 <nav><div="nav">...</div></nav>

并使用类(或 id)选择器(如.nav. 这将是健壮的,它还将为您提供使用据称语义标记(如nav. (从未出现过任何切实的好处,但也许会出现一些好处。)

于 2012-07-26T10:38:48.557 回答
2

因为您只是在寻找一种方法来设置 HTML5 元素的样式,所以请使用 HTML5Shiv(专为此目的而设计)。Modernizr 包含更多功能。你不会使用它(从问题来看)。

这是源代码,以防您想知道:https ://github.com/aFarkas/html5shiv/blob/master/src/html5shiv.js

于 2012-07-26T10:14:43.957 回答
1

您可以(并且应该?)使用它们。一定要让它们在旧浏览器中显示得很好,我推荐 html5shiv。

http://code.google.com/p/html5shiv/

我们在这里使用它:米德兰兹健康网络

于 2012-07-26T10:13:19.107 回答