正确支持IE

时间:2017-11-25 14:39:25

标签: html5 dom

我决定开始使用html5 main元素,我之前没有使用过,因为某些浏览器缺乏支持。

我知道你可以通过做这样的事情来“修复”缺乏支持:

main {
    display: block;
}

然而,我遇到了one answer,声明您应该执行以下操作以将其添加到DOM中:

document.createElement('main');

我的问题是 - 在我们这样做之前,我们不应该首先检查浏览器是否支持main元素吗?我不确定最好的方法是这样吗? ....或者这不是真正需要的,并且无论支持什么,都可以安全地在所有页面加载中使用?

1 个答案:

答案 0 :(得分:1)

链接的答案并不准确。

 document.createElement('main');
只有IE9及更早版本才需要

,方法是帮助这些版本正确解析 <main></main>标记,以形成有效的main元素。正如链接的答案所说的那样,单独调用它是无害的,所以你可以这样做,而不必担心它被不恰当地调用。但是,如果您支持9或更早版本的IE版本,则应在标记中的第一个(通常只有)<main>标记之前在JavaScript中同步包含其包含脚本。

IE10和IE11正确解析标记,但将创建的main元素视为内联元素。要使其像其他浏览器一样设置样式,请使用

main {
    display: block;
}

要考虑的另一个方面是可访问性里程碑角色。 IE默认情况下不会公开主要的里程碑角色,所以你可能希望<main role="main">这样做,尽管应该注意HTML5规范不鼓励这样做。