浏览器不会给未知元素设定任何样式(不同浏览器对元素会有不同的默认样式)在IE9之前的版本中,也不能对未知元素设定样式,针对这个问题有一个弥补方案,感兴趣的朋友可以参考下哈

每个浏览器都有一份清单列举自己所支持的HTML元素。不在清单上的元素都将被视为未知元素。浏览器不会给未知元素设定任何样式(不同浏览器对元素会有不同的默认样式)。在IE9之前的版本中,也不能对未知元素设定样式。未知元素的DOM也显示不正确,IE会在DOM中插入一个没有子元素的空节点。所有你原本认为将会成为这个未知元素的子元素的元素会成为其兄弟节点。

针对这个问题有一个弥补方案,在使用里如article标签之前先用js创建一个虚假的article元素,IE就会识别这个元素了,而支持用css设定样式。这个虚假元素甚至都不需要插入到DOM中。

请看如下的例子


< !DOCTYPE HTML>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>unknown elements</title>
<style>
article{display:block;border:1px solid red}
</style>
</meta></head>
<body>
<article>
<h1>welcome to feimos's blog</h1>
<p>This is your <span>first time to visit this webSite.</span></p>
</article>
</body>
</html>

IE6不会识别article,所以也不会有红色边框。

但是如果我们在head中加入一句js,情况立马就不一样了。


<script type="text/javascript">
document.createElement("article");
</script>

IE6假装它认识这个元素,正确显示了效果。

我们可以为所有新的HTML5元素都一次性创建一份虚假副本,以后就无需担心那些不能良好支持HTML5的浏览器了。Remy Sharp的HTML5 enabling script就是帮助我们做这些事情的,该脚本的基本想法如下:


<!--[if lt IE 9]>
<script type="text/javascript">
var e=("abbr,article,aside,audio,canvas,datalist,details,"+
"figure,footer,header,hgroup,mark,menu,meter,nav,output,"+
"progress,section,time,video").split(',');
for(var i=0;i<e .length;i++){
document.createElement(e[i]);
}
</script>
< ![endif]-->

首先利用条件注释判断是不是IE9之前版本,如果是就执行js。先把所有新标签写入e数组中,然后遍历整个数组,并创建副本。

该脚本已经托管在Google Project Hosting上,你可以直接外链这个脚本:


<!--[if lt IE 9]>
<script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
< ![endif]-->

另外,这段脚本需要放在页面起始的部分,最好是head中,不要放在底部。这样IE在解析页面标签之前就会先运行这段代码。

最新资讯
我是华帝,法国队夺冠我依然不慌

我是华帝,法国队夺冠我

世界杯已然落幕,但“华帝退款”的故事正在上演,下次,他们
知乎、马蜂窝,你们要不和华帝学学营销?

知乎、马蜂窝,你们要不

无论从哪个维度来看,华帝在这一波世界杯营销中都赢了。
扎克伯格的AI芯片野心:高调挖角谷歌 疯狂招人

扎克伯格的AI芯片野心

对于任何一个业务体量巨大的科技公司而言,专为自己业务
当一名被网红“包养”的调音师,是什么样的感觉?

当一名被网红“包养”

网红经济归根到底是注意力经济。然而,当网红们都在拼颜
今年的3款新iPhone玻璃面板首次曝光 LCD版边框略宽

今年的3款新iPhone玻

美国科技网站9to5mac今日首次曝光了苹果公司(以下简称
今年3D感测智能手机将达1亿部 三款iPhone占绝大多数

今年3D感测智能手机将

预计全年3D感测功能的智能手机出货量将达到1亿台,当然
最新文章
canvas烟花特效锦集

canvas烟花特效锦集

这篇文章主要介绍了canvas烟花特效锦集,小编觉得挺不错
使用Html5、CSS实现文字阴影效果

使用Html5、CSS实现文

这篇文章主要介绍了使用Html5、CSS实现文字阴影效果的
html5 canvas绘制放射性渐变色效果

html5 canvas绘制放射

这篇文章主要介绍了html5 canvas绘制放射性渐变色效果
canvas基础之图形验证码的示例

canvas基础之图形验证

这篇文章主要介绍了canvas基础之图形验证码的示例的相
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能

利用HTML5+css3+jquer

这篇文章主要介绍了利用HTML5+css3+jquery+weui实现仿
用HTML5实现手机摇一摇的功能的教程

用HTML5实现手机摇一

手机上的摇一摇功能不错.怎么实现的呢