现代的浏览器都 支持 html5,对于无法识别的元素,所有浏览器, 包括 旧的和最新的,会作为内联元素 自动 处理
将 HTML5 元素定义为块元素
HTML5 定了 8 个新的 HTML?语义(semantic)?元素
所有这些元素都是?块级?元素
为了能让旧版本的浏览器正确 显示 这些元素,需要设置 css 的? dis play:block
header,section,footer,aside,nav,main,article, fig ure?{ ???? dis play:?block;? }
为 HTML 添加 新元素
我们也可以为 HTML 添加 新的元素
下面的范例向 HTML 添加 的新的元素 <ysHero>,并为该元素定义样式
<!DOCTYPE?html> < Meta ?charset="utf-8">? <script> document.createElement("ysHero")</script> <style> ysHero{ ???? dis play:block; ????background-color:#ddd; ????padding:50px; ????font-size:30px; } </style> <h1>我的第 一个 标题 </h1> <p>我的第 一个 段落</p> <ysHero>我的第 一个 新元素</ysHero>
JavaScript 语句?document.createElement("ysHero")?是为 IE 浏览器 添加 新的元素
Internet Explorer 浏览器问题
虽然我们可以使用?document.createElement("element")? 方法 来为 IE 浏览器 添加 HTML5 元素
但是 Internet Explorer 8 及更早 IE 版本的浏览器 不支持 这种方式
不过,我们可以使用 Sjoerd Visscher 创建的 "HTML5 Enabling JavaScript","?shiv?" 来 解决 该问题
国外<!--[if?lt?IE?9]> ??<script?src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->
国内
<!--[if?lt?IE?9]> <script?src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script> <![endif]-->
这个 代码 是 一个 注释,作用是在 IE 浏览器的版本小于 IE9 时将读取 html5.js 文件 ,并解析它
针对 IE 浏览器,html5shiv 是比较好的 解决方 案
html5shiv 主要 解决 HTML5 提出的新的元素不被 IE6-8 识别,这些新元素不能作为父节点包裹子元素,并且不能应用 css 样式
范例: 完美的 Shiv 解决方 案
<!DOCTYPE?html>
< Meta ?charset="utf-8">
<!--[if?lt?IE?9]>
<script?src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<![endif]-->
<h1>我的第一篇 文章 </h1>
<article>
简单教程,简单编程
</article>
html5shiv.js 引用 代码 必须放在 HTML 文档头部,因为 IE 浏览器在解析 HTML5 新元素时需要先加载该 文件 。
HTML5 新元素 ? ?HTML5 教程