2017-11-25 116 views
0

我已经决定开始使用html5 main元素,我之前没有使用这个元素,因为在某些浏览器中缺少支持。正确支持IE中的html主要元素

我知道做这样的事情,你可能只是“修复”缺乏支持:

main { 
    display: block; 
} 

但是我碰到one answer,指出你应该做的下方,将其添加到DOM以及传来:

document.createElement('main'); 

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

+0

@Rob你甚至读过这个问题或只是主题?他们绝不相同。 – Brett

回答

1

链接的答案并不准确。

document.createElement('main'); 

只需要IE9和更早版本,通过帮助这些版本正确解析<main></main>标签,形成工作main元素。正如相关答案所说,自己调用它是无害的,所以你可以做到这一点,而不用担心它被不恰当地调用。但是,如果您支持9或更低版本的IE版本,则应该在标记中的第一个(通常只有)<main>标记之前在JavaScript中同步包含其包含的脚本。

IE10和IE11正确解析标记,但将main元素作为内嵌元素创建。为了使其风格与其他浏览器一样,请使用

main { 
    display: block; 
} 

要考虑的另一方面是可访问性标志性角色。 IE不会默认主要的里程碑式的作用,所以你可能希望做<main role="main">这样做,但应该指出,HTML5规范不鼓励这样做。

+0

很好的答案 - 谢谢!另外,关于可访问性部分的良好旁注。干杯! – Brett