CSS - Internet Explorer和<main>标签背景

hol*_*eap 16 html css html5 internet-explorer

我有一个非常简单的布局,可以在Firefox和Chrome中呈现,但是Internet Explorer(版本11)似乎无法为<main>元素呈现任何类型的背景颜色.

我有<main>元素作为元素的孩子,<body>既没有backgroundbackground-color似乎没有任何区别.<main>将始终具有相同的背景<body>.我还没有找到任何说明这是否是IE中的错误.

使用Internet Explorer 查看这个jsfiddle,看看我的意思.

很显然,我可以代替<main>使用<div id="main">和更新我的CSS选择器,但我想知道为什么会这样.

Nie*_*jes 24

IE11本身不支持该<main>元素.你可以通过使用像Modernizr这样的脚本或者一个无害的JS系列来引入对它的支持:

document.createElement('main');
Run Code Online (Sandbox Code Playgroud)

该元素不会插入DOM中,但现在它将被IE识别为适当的元素.在此之后,它仍然没有适当的造型.将以下内容添加到CSS中:

main {
    display:block;
}
Run Code Online (Sandbox Code Playgroud)

一切都会好的.您之前看到它没有获取任何内容的原因是因为IE没有这两个步骤就不会将它添加到盒子模型中,因此它没有"布局"或"大小".它只是看不见,这就是你看到身体的原因.它确实包含元素,这些元素根据<main>元素的左上角坐标正确呈现(排序).

  • 我从没想过在最新版本的IE中不会支持`<main>`.现在我知道了,我找到了[这个问题](http://stackoverflow.com/questions/20094276/ie11-is-missing-user-agent-style-for-main-element-display-block).添加`display:block;`似乎效果很好. (3认同)
  • 内容出现在`<main>`元素中,但它看起来默认情况下将其呈现为内联元素,可能是因为IE无法识别它.看起来这只是IE相对较长的更新周期的副作用.离开`<main>`并在CSS中添加`display:block;`给了我两全其美:HTML5元素的使用和与旧浏览器的兼容性. (3认同)