HTML5中的语义标签兼容IE8以及更低版本的浏览器

时间:2023-01-27 13:57:26

看某教程,说让HTML5的这些语义标签能够兼容低版本的浏览器,原文是“你可以设置css的display属性为block”。很好理解,就设置css样式为block嘛,那就直接设置咯:

 header, section, footer, aside, nav, main, article, figure {
display: block;
}
 <body>
<header>header元素</header>
<section>section元素</section>
<footer>footer元素</footer>
<aside>aside元素</aside>
<nav>nav元素</nav>
<main>main元素</main>
<article>article元素</article>
<figure>figure元素</figure>
</body>

HTML部分

首先先看下这些语义标签在浏览器支持的时候的样式是怎么样的:

HTML5中的语义标签兼容IE8以及更低版本的浏览器

很好,看的出来是块级标签。然后我们用IE11自带的模拟旧版本IE的功能(f12,靠近右边有一个显示器和手机放在一起的图标)HTML5中的语义标签兼容IE8以及更低版本的浏览器

我们切成IE8:

HTML5中的语义标签兼容IE8以及更低版本的浏览器

阿,是变成了内联元素。。。不对教程上不是刚刚说设置成display;block就行了,还说“此外,所有浏览器,包括旧的和最新的,对无法识别的元素会作为内联元素自动处理。”。(这个时候我的理解是无法识别的它就当作是一个像<span>这种的内联元素啥的,并没有想到得先创建)

瞎折腾了半小时(不要问为啥用了半小时,回想起来只想掐死自己),搞不定。算了,先看下面的吧。"为HTML添加新元素"。我一想:是不是还得创建元素阿,写了个JavaScript创建这些HTML5中的元素:

 var newEle = new Array("header","section","footer","aside","nav","main","article","figure");
for(var i = 0;i<10;i++) {
document.createElement(newEle[i]);
}

然后再运行:

HTML5中的语义标签兼容IE8以及更低版本的浏览器

成了,那我前面那半小时。。。好吧我是个沙雕。

<figure>元素跟在正常支持的浏览器中不太一样,是因为正常支持的话,<figure>还有一个style="margin:16px 40px";的样式,想要完全一样就加上这个吧。

(因为感觉自己太蠢了,之后可能会忘了,就写下来提醒自己好了┑( ̄Д  ̄)┍)