HTML5浏览器兼容性解决方案

HTML5新增语义标签,以及如何兼容老版本浏览器。

前言

HTML5属于上一代HTML的新迭代语言,设计HTML5最主要的目的是为了在移动设备上支持多媒体。例如:video 标签和 audio 及 canvas 标记。

而HTML5在取消了过时的显示效果标记 和

等同时,也引入了一些新的语义标签,例如:

更多的语义标签请参考

一、语义标签兼容性

1. 解决思路

主流浏览器都兼容 HTML 5 的新标签。对于 IE8 及以下版本,它不认识 HTML 5 的新元素,会把它们默认渲染为display:inline并且拒绝为它们添加任何样式。同时,渲染未知元素时,会把它们作为一个「没有后代的空元素」插入到 DOM 中。

解决方法很简单,使用 JavaScript 创建一个「没用的」元素即可,例如:

然后,我们把他们的样式设置为display:block就可以正常使用了。

2. 终极解决方案

按照上面的思路,能有效解决旧版IE浏览器的兼容性问题。但这样的方法显然很笨重,如果我们用到了很多HTML5的语义标签,那就要频繁去手动创建了。

因此,我们使用一种终极解决方案:那就是借助HTML5 Shiv这个js插件。

它的原理很简单,也是和上面一样去创建这些元素。但是节省了我们开发者的工作量。直接在

当中引入就可以了,但是建议使用条件注释来引入,这样只在需要的时候才加载,避免性能消耗。

使用方法如下:

二、多媒体标签兼容性

1. 介绍

前面说过,HTML5新增了 video 和 audio 两个多媒体标签,前者是视频,后者是音频。

但是不同浏览器对视频(音频)格式的支持很不一样,详情见video标签支持的格式

因此我们需要对多媒体标签做兼容处理。

2. 解决方案

以 video 标签为例:

原理是同一个文件做成三份,以此来兼容不同的浏览器。浏览器在解析的时候,只播放支持的那个多媒体文件,不再考虑其他的多媒体文件。

audio 标签同上,只是换了个标签名。

html5在不同浏览器兼容,HTML5浏览器兼容性解决方案相关推荐

  1. IE6,IE7和8浏览器兼容HTML5标签的解决方案

    html5大行其道的时代已经到来.如果你还在等待浏览器兼容,说明你已经与web脱节几条街了.当然,这得益于移动客户端的蓬勃发展.如果还在纠 结于,是否应该掌握html5和css3技术时,请狠狠的抽自己 ...

  2. IE9 以下版本浏览器兼容html5

    (1)    IE9 以下版本浏览器兼容HTML5的方法,使用静态资源的html5shiv包: <!--[if lt IE9]> <script src="http://c ...

  3. 让IE浏览器兼容HTML5

    在HTML 5高歌猛进的今天,各大主流浏览器,如Chrome.Firefox.Opera.Safari等,纷纷在不同程度上支持HTML 5,紧跟时代的步伐:而当Microsoft反应过来的时候,IE已 ...

  4. 为什么需要考虑浏览器兼容,浏览器渲染引擎在浏览器中的作用是什么样的?

    为什么需要做浏览器兼容?–渲染引擎在浏览器中的作用 Web浏览器的体系结构 User Interface:用户界面.可以使最终用户能够与界面上所有可视元素进行交互. Browser Engine:浏览 ...

  5. IE9 以下版本浏览器兼容HTML5的方法,使用的静态资源的html5shiv包:

    <!--[if lt IE9]> <script src="http://cdn.static.runoob.com/libs/html5shiv/3.7/html5shi ...

  6. css 兼容解决方案,css浏览器兼容_CSS浏览器兼容性问题及解决方案

    摘要 腾兴网为您分享:CSS浏览器兼容性问题及解决方案,云南移动,优化大师,央视影音,心视界等软件知识,以及赣教云教学通2.0,少儿趣配音,中辉期货,单机,轻笔记,鸿合实物展台,008神器,酷有,电子 ...

  7. 怎样使html兼容各个浏览器,兼容各个浏览器的技巧

    1,盒解释器的不同解释. #box{   width:600px;        //for   ie6.0-   w\idth:500px;       //for  ff+ie6.0}#box{  ...

  8. html定位 浏览器兼容,IE6浏览器不支持固定定位(position:fixed)解决方案

    今天在学习的时候,突然发现在IE6浏览器下,position:fixed不管用了: 复制代码代码如下: New Document 正常普通流元素 position:fixed元素 上面的代码在IE6中 ...

  9. html5 定义width不兼容,CSS-宽度自适应和浏览器兼容笔记

    自适应 宽度自适应:网页元素根据窗口或子元素自动调整宽度 适用百分比进行设置,例如:100% 铺满:50% 占据一般宽度 块元素如果不设置宽度,默认为100% 自适应中可以设置最大或者最小宽度和高度 ...

  10. 前端浏览器兼容问题总结

    浏览器占比现状 在各大浏览器厂商的发展过程中,他们其实对web的标准都有不同的实现,因为实现的标准的不同,所以会有兼容性的产生,早期IE是在浏览器的世界中,占据主导地位.所以它自身实现了很多不同于标准 ...

最新文章

  1. 为什么 Python 没有 main 函数?
  2. es6在原生代码的用法_关于ES6的模块化
  3. Qt下使用OpenCV3打开摄像头并把图像显示到QLabel上
  4. cocos2d-x游戏实例(4)-地图碰撞
  5. mysql动态标签可以嵌套吗_Mysql动态嵌套游标
  6. 与指定数字相同的数的个数(信息学奥赛一本通-T1102)
  7. 算法 摩尔投票算法(图解例题)
  8. linux卸载rpm安装的golang,linux下go安装/卸载重装-Go语言中文社区
  9. element select 自动展开_element-ui中的select下拉列表设置默认值方法
  10. app采集的10个经典方法
  11. 读取json本地js处理输出html,JavaScript 通过浏览器导出和读取本地 JSON 文件
  12. viper12a电源电路图_基于VIPER12A芯片设计的开关电源
  13. 新版标准日本语初级_第四十五课
  14. L298N电机驱动器
  15. Codeforces Round #469 (Div. 2) F. Curfew (贪心)
  16. 信数金服:物联网案例之物联网系统如何进行实时决策
  17. Flutter之路由与导航
  18. 小程序项目:基于微信小程序社区疫情防控系统——计算机毕业设计
  19. MySQL数据库 日志管理、备份与恢复
  20. 企业员工流动大难管理?低代码+人事管理系统轻松掌控员工档案信息!

热门文章

  1. 工业物联网快速解决方案
  2. 微信检测器 微信过滤工具
  3. 微信公号DIY:训练微信聊天机器人公号变身图片上传工具
  4. Unity Sprite 灰色图
  5. 罗技无线键盘Windows和Ubuntu下锁定Fn键方法
  6. 群晖服务器文件管理套件,群晖drive套件的使用教程
  7. java更新word目录_java aspose.words 生成word目录和更新目录
  8. 微信小程序+“芝麻小客服”可设自动关注公众号,助力运营闭环
  9. 【PHP源码】三合一收款码扫码来源识别收款源码
  10. Ttest + 秩和检验