使用<;部门>;作为HTML5语义元素的备份标记

使用<;部门>;作为HTML5语义元素的备份标记,html,Html,我计划使用一些新的HTML5语义元素,但看起来有些元素甚至在较新的浏览器上也不受很好的支持(据我所知,IE11不支持main)。如果它们不受支持,有没有办法让它们被视为,由于我计划使用的HTML5语义标记目前基本上与divs AFAIK相同(header、footer、main是我目前计划使用的,也是canvas,但是没有一个好的替代标记来完成canvas的功能) 目前,如果我在IE中使用一个不受支持的标签,它似乎被视为一个未设置样式的标签,但问题是我不能在css中设置它的宽度或高度。我该怎么做

我计划使用一些新的HTML5语义元素,但看起来有些元素甚至在较新的浏览器上也不受很好的支持(据我所知,IE11不支持main)。如果它们不受支持,有没有办法让它们被视为
,由于我计划使用的HTML5语义标记目前基本上与divs AFAIK相同(header、footer、main是我目前计划使用的,也是canvas,但是没有一个好的替代标记来完成canvas的功能)

目前,如果我在IE中使用一个不受支持的标签,它似乎被视为一个未设置样式的标签,但问题是我不能在css中设置它的宽度或高度。我该怎么做才能将其视为一个元素,并将我放入css中的所有样式应用于该元素,使用标记的名称作为选择器,就像它是一个
一样

在IE11中不起作用,如果是IE7或其他什么,我不会太担心,但很多人仍然使用更多更新版本的IE,我不希望网站对他们显示不正确。

将允许您在IE11中设置
main
元素的样式(或更少)。对它的作用有一个解释(实际上是对其整个历史的分解)

货币报价:

顺便说一句,如果您希望CSS规则应用于IE中的未知元素,您可以 只需执行document.createElement(elementName)。这不知怎的让 CSS引擎知道具有该名称的元素存在

注意。如果您正在使用HTML5并计划支持IE9以外的任何东西,那么您可能应该理所当然地使用shiv。

将允许您在IE11(及以下)中设置
元素的样式。对它的作用有一个解释(实际上是对其整个历史的分解)

货币报价:

顺便说一句,如果您希望CSS规则应用于IE中的未知元素,您可以 只需执行document.createElement(elementName)。这不知怎的让 CSS引擎知道具有该名称的元素存在


注意。如果您正在使用HTML5并计划支持IE9以外的任何东西,那么您可能应该理所当然地使用shiv。

我想我已经找到了解决方案

在我的css文件中,如果我这样做:

main /*or any other unsupported tag that you want treated as a div*/
{
    display:block;
    other-property:other-value;
    other-property:other-value;
    ...
}

它的行为似乎与
标记相同。我还没有彻底测试或研究过这个解决方案(在IE11和google chrome上测试了几个属性,包括颜色、宽度和文本装饰,标签名为
,它的工作原理与
),所以如果有人知道它有任何问题,请告诉我。

我想我已经找到了解决方案

在我的css文件中,如果我这样做:

main /*or any other unsupported tag that you want treated as a div*/
{
    display:block;
    other-property:other-value;
    other-property:other-value;
    ...
}

它的行为似乎与
标记相同。我还没有彻底测试或研究过这个解决方案(在IE11和谷歌chrome上测试了一些属性,包括颜色、宽度和文本装饰,标签名为
,它的工作原理与
),所以如果有人知道它有任何问题,请告诉我。

我不确定问题的真正含义,但标题是什么“使用
作为HTML5语义元素的备份标记”是对“如何使用HTML5
main
header
等标记,我的页面也可以在不支持它们的浏览器上使用”问题的一个很好的回答

例如,与HTML中的
..
和CSS中的
main{…}
不同,您应该

<div class=main>
<main>...</main>
</div>
在CSS中


这看起来可能是多余的,通过使用类似html5shiv的polyfill并显式声明
main{display:block}
(如果polyfill不这样做),您可以获得几乎相同的浏览器覆盖率。但是在这种方法中,您以一种旧的健壮方式进行所有样式设置,并且仅将新元素用于其语义。(实际上,“语义”没有任何意义,但也许有一天一些程序会识别
main
article
等,并以某种特殊的方式处理它们。)

我不确定问题的真正含义,但标题“使用
作为HTML5语义元素的备份标记”是一个很好的答案“我如何使用HTML5
main
header
等标记,我的页面也可以在不支持它们的浏览器上使用?”

例如,与HTML中的
..
和CSS中的
main{…}
不同,您应该

<div class=main>
<main>...</main>
</div>
在CSS中


这看起来可能是多余的,通过使用类似html5shiv的polyfill并显式声明
main{display:block}
(如果polyfill不这样做),您可以获得几乎相同的浏览器覆盖率。但是在这种方法中,您以一种旧的健壮方式进行所有样式设置,并且仅将新元素用于其语义。(实际上,“语义”没有任何意义,但也许有一天某些程序会识别出
main
article
等,并以某种特殊的方式处理它们。)

您需要HTML5垫片来支持较旧的浏览器,但仅使用HTML5垫片并不能修复IE11。请参见:。因此,您还需要一个包含“main”元素的CSS重置,例如。或者您可以直接将CSS重置添加到其他人提到的项目中

    main { display: block;}

您需要HTML5垫片来支持较旧的浏览器,但仅使用HTML5垫片并不能修复IE11。请参见:。因此,您还需要一个包含“main”元素的CSS重置,例如。或者您可以直接将CSS重置添加到其他人提到的项目中

    main { display: block;}

这似乎是可行的,但我想我已经找到了一个更简单的解决方案
在css中,主标签看起来就像一个标签。但我还没有找到任何关于这方面的官方文档,它使用
宽度:**px;
文本装饰:下划线;
这是我迄今为止测试过的所有内容。这比包含一个库的引用更容易,该库将确保所有新的HTML5标签都可以被样式化在IE中?嗯……是的……考虑到我已经在做类似于:
main{width:500px;t的事情