2017-11-25 253 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