HTML5 - 让老浏览器支持新语义元素的几种方法
来源:互联网 发布:工厂花季少女走红网络 编辑:程序博客网 时间:2024/04/29 19:21
基本上所有现代浏览器都已经很好的支持HTML5新增的语义元素,但市面上还有许多机器认使用IE9之前的版本(比如IE8)。所以为了兼容这些浏览器,当我们使用新语义元素时,也要确保它们在这些古老的浏览器上能正常显示。
下面总结了三种让旧浏览器支持新语义的办法。
方法1:为语义元素添加样式
浏览器在遇到不认识的元素时,会把它们当成内联(inline)元素。而大多数HTML5语义元素都是块级元素,需要单独一行来呈现它们。
(1)首先我们可以通过一条“超级规则”,将它们显示为块级元素,避免它们都挤在一起。
article, aside, figure, figcaption, footer, header, main, nav, section, summary { display:block;}
(2)虽然添加了上面的样式可以解决大多数浏览器的兼容问题。但对于较早版本的IE这样做还不够,它们会拒绝给无法识别的元素应用样式。 所以我们还要通过JavaScript创建新元素,这样可以骗过IE,让它识别外来元素。
<script> document.createElement('article'); document.createElement('aside'); document.createElement('figure'); document.createElement('figcaption'); document.createElement('footer'); document.createElement('header'); document.createElement('main'); document.createElement('nav'); document.createElement('section'); document.createElement('summary');</script>
方法2:使用html5.js垫片脚本
亲手写上面的样式还有js代码太麻烦,我们可以直接引用html.js这个脚本。
这个脚本除了创建所有的新HTML元素,还会为它们动态应用前面提到的样式,确保新元素能正确地显示为块元素。
(注意:对于html5.js的引用放在IE的条件注释中,这样这个脚本只有在旧版本的IE下才会执行。)
<html><head><!--[if lt IE 9]><script src="html5.js"></script><![endif]--></head><body><header>welcome to hangge.com</header><aside>做最好的开发者知识平台</aside></body><html>
方法3:使用Modernizr - 推荐
modernizr.js除了提供HTML5的检测功能,还内置了HTML5垫片脚本。如果页面已经使用了Modernizr,那就不需要再使用html5.js或者添加什么样式规则了。
<script src="modernizr.js"></script>
原文出自:www.hangge.com 转载请保留原文链接:http://www.hangge.com/blog/cache/detail_846.html
- HTML5 - 让老浏览器支持新语义元素的几种方法
- HTML5 新语义元素的浏览器兼容问题
- 让老版本浏览器支持HTML5的方法
- 让IE6支持HTML5元素的方法
- 让浏览器支持html5的方法!
- [HTML5] - 让IE浏览器支持HTML5标准的方法
- 让IE(包括IE6)支持HTML5元素的方法
- 让IE浏览器支持HTML5标准的方法
- 让IE浏览器支持HTML5标准的方法
- 让IE浏览器支持HTML5标准的方法
- 让IE浏览器支持HTML5标准的方法(转)
- 让IE浏览器支持HTML5标准的方法(转)
- 让你的IE浏览器支持HTML5标准方法代码
- 让IE浏览器支持HTML5标准的方法
- 让IE浏览器支持HTML5标准的方法
- 让IE浏览器支持HTML5标准的方法
- 让IE浏览器支持HTML5标准的方法
- 让IE浏览器支持HTML5标准的方法
- C++ 虚析构函数
- Newtonsoft.Json高级用法
- LINK : fatal error LNK1201: 写入程序数据库
- 安卓 命名规范
- 文件转Base64格式
- HTML5 - 让老浏览器支持新语义元素的几种方法
- 内存溢出与内存泄漏
- 用GDB调试程序(一)
- 无人机--三维重建
- CSS RESET —— 浏览器样式重置
- smtp协议解析分析(源代码)
- Android Studio卡很久(loading很久)的问题
- 获取当前星期
- SQL Server全量上线,腾讯云数据库又添新成员!