如何在 IE6 等老式浏览器中使用HTML5的新标签
来源:互联网 发布:韩国实力派女演员 知乎 编辑:程序博客网 时间:2024/05/16 19:03
HTML5的出现激起了我们前端开发人员心中的浪潮,因为HTML5 向开发人员提供了很多新的标签, 如 section, nav, article, header 和 footer 等。但IE6在中国的市场迟迟未消失又给开发人员泼来了冷冷的冰水,使得很多新技术无法真正的发挥出来,提升用户的体验。 HTML5这些标签语义化程度高, 会被经常使用, 但在 IE6, IE7, IE8 和 Firefox 2 等老式浏览器中不能识别和正常使用。
为什么老式的浏览器不能识别这些标签?
其实错不在浏览器, 因为在那个时代根本不存在这种标签, 所以不能正确识别出来, 而这种不寻常的标签识别令 DOM 结构变得异常。
我们有测试代码如下。 是一个文章标题和蓝色字的文章内容, 其中文章内容用了 article 标签。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<meta charset="UTF-8" />
<title>测试</title>
<style>
article{color:#06F;}
</style>
</head>
<body>
<h1>文章标题</h1>
<article>
这是文章内容,应该是一段蓝色的文字。在老式浏览器中,如果不做 hack 将显示异常。
</article>
</body>
</html>
在 IE8 中, 显示如下。
IE8 不能识别 article 标签, 定义在标签上的 CSS 样式没有起作用。 在 IE8 中,<article> 被解释成命名为 <article /> 和 </article /> 两个空的标签元素, 与文章内容并列为兄弟节点, 如下图。
如何在老式浏览器中使用 HTML5 标签?
既然因为不能识别标签而不能使用, 解决办法就是让标签被识别出来。 所幸, 简单地通过document.createElement(tagName) 即可以让浏览器识别标签和 CSS 引擎知道该标签的存在。 假设我们上面的例子的 <head> 区域加上如下代码。
<script>
document.createElement('article');
</script>
IE8 中的 DOM 解释就会变成下图所示。
自然, 文字也显示成正常的蓝色。
结语
http://html5shiv.googlecode.com/svn/trunk/html5.js
- 如何在 IE6 等老式浏览器中使用HTML5的新标签
- 如何在老式浏览器中使用 HTML5 标签
- 老式浏览器(IE6,IE7,IE8)识别html5标签
- 如何解决IE6/IE7/IE8浏览器不兼容HTML5新标签的问题
- 如何解决IE6/IE7/IE8浏览器不兼容HTML5新标签的问题
- 如何应付老式的浏览器
- 直接在低版本IE6/7/8浏览器中使用HTML5的audio和video标签播放视频音频的办法
- 直接在低版本IE6/7/8浏览器中使用HTML5的audio和video标签播放视频音频的办法
- 低版本IE6/7/8浏览器中使用HTML5的audio和video标签播放视频音频
- 如何让ie6-8识别HTML5新标签
- html5有哪些新特性?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
- 浅谈HTML5新标签的浏览器兼容问题
- Html5新标签的使用
- 如何让ie8及之前的浏览器兼容HTML5新标签和自己设定的新标签
- Chrome浏览器中页面在新的标签页打开
- 如何让旧浏览器支持HTML5新标签
- 如何让旧浏览器支持HTML5新标签
- 父级标签HTML5新标签在低版本浏览器中兼容性Checklist (hacks and issues)
- 考勤
- linux下 文件压缩与解压
- Oracle OEM
- 我为什么喜欢Go语言
- DirectShow编程1
- 如何在 IE6 等老式浏览器中使用HTML5的新标签
- MySQL本地可以连接,远程连接不上的解决
- 2012中兴ZTE笔试题 软件题3
- LR设置返回值检查点&打印输出执行日志
- U8800+/PRO【民间2.3.5以上ROM强刷官方B572G图文教程】小白、刷机必备!
- 正则表达式提取Url中QueryString键值(搜索关键字的提取)
- DirectShow翻译
- 【android】 调用别的应用的activity
- 随机化算法(4) — 拉斯维加斯(Las Vegas)算法