如何让HTML5标记元素在IE中很好地显示

Web*_*ner 2 css markup html5 css-selectors

是什么让HTML5标记元素是最好的方式<header>,<section>以及<footer>在IE中显示呢?

通常,当我将CSS应用于HTML5元素时,样式不会发生.但我已经看到它在其他网站上完成,比如colourfreak.com,并希望得到一些帮助.

我认为它与不接受新标签名称的选择器有关.所以像这样的东西是行不通的:

nav a {
    text-decoration: none;
}
Run Code Online (Sandbox Code Playgroud)

详细解释或好文章会有所帮助.谢谢!

Web*_*ars 9

对于IE,我们必须使用JS创建新的HTML5元素.创建新文件,将其命名为html5.js,并在您所在的<head>区域中包含此脚本.一切都会好起来的.

document.createElement('article');
document.createElement('aside');
document.createElement('details');
document.createElement('figcaption');
document.createElement('figure');
document.createElement('footer');
document.createElement('header');
document.createElement('hgroup');
document.createElement('main');
document.createElement('menu');
document.createElement('nav');
document.createElement('section');
document.createElement('summary');
Run Code Online (Sandbox Code Playgroud)

这仅适用于IE,因此您可以使用条件注释:

<!--[if IE]><script src="js/html5.js"></script><![endif]-->
Run Code Online (Sandbox Code Playgroud)

由于这些元素显示为内联元素,您可能希望在CSS文件中添加此规则:

article, aside, details, figcaption, figure, footer,
header, hgroup, main, menu, nav, section, summary { display: block; }
Run Code Online (Sandbox Code Playgroud)


smi*_*dge 7

您可以使用HTML5 Shiv ...

<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

您也可以使用HTML5样板...(包括HTML 5 shiv)

http://html5boilerplate.com/

  • 另外,正如Webars所说,你需要应用"display:block;" 使用HTML5 shiv时所有html 5元素,因为IE不会给它们任何默认样式.如果你正在使用样板,那么你已经完成了. (2认同)