我决定开始使用html5 main
元素,我之前没有使用过,因为某些浏览器缺乏支持。
我知道你可以通过做这样的事情来“修复”缺乏支持:
main {
display: block;
}
然而,我遇到了one answer,声明您应该执行以下操作以将其添加到DOM中:
document.createElement('main');
我的问题是 - 在我们这样做之前,我们不应该首先检查浏览器是否支持main
元素吗?我不确定最好的方法是这样吗? ....或者这不是真正需要的,并且无论支持什么,都可以安全地在所有页面加载中使用?
答案 0 :(得分:1)
链接的答案并不准确。
document.createElement('main');
只有IE9及更早版本才需要,方法是帮助这些版本正确解析 <main>
和</main>
标记,以形成有效的main
元素。正如链接的答案所说的那样,单独调用它是无害的,所以你可以这样做,而不必担心它被不恰当地调用。但是,如果您支持9或更早版本的IE版本,则应在标记中的第一个(通常只有)<main>
标记之前在JavaScript中同步包含其包含脚本。
IE10和IE11正确解析标记,但将创建的main
元素视为内联元素。要使其像其他浏览器一样设置样式,请使用
main {
display: block;
}
要考虑的另一个方面是可访问性里程碑角色。 IE默认情况下不会公开主要的里程碑角色,所以你可能希望<main role="main">
这样做,尽管应该注意HTML5规范不鼓励这样做。