返回顶部
首页 > 资讯 > 前端开发 > node.js >如何处理HTML5新标签的浏览器兼容版问题
  • 319
分享到

如何处理HTML5新标签的浏览器兼容版问题

2024-04-02 19:04:59 319人浏览 八月长安
摘要

这篇文章给大家分享的是有关如何处理HTML5新标签的浏览器兼容版问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。html5规范毕竟是刚刚才定义完成的规范,还有一些浏览器并不能支

这篇文章给大家分享的是有关如何处理HTML5新标签的浏览器兼容版问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

html5规范毕竟是刚刚才定义完成的规范,还有一些浏览器并不能支持其中的新标签和新属性,尤其是IE8及以下版本浏览器。以下介绍一些在页面中使用HTML5新标签的实践方法,目的是让HTML5中的新标签在低级浏览器中也得到有限的支持,不至于影响整个的页面功能。

  • 让浏览器识别HTML5规范中的新标签

IE8浏览器中还没有添加对HTML5新标签的支持,所以在IE8中无法直接展现HTML5新标签中的内容。庆幸的是IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,代码如下:

var e = "abbr, article, aside, audiocanvas, datalist, details, dialog, eventsource, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, time, video".split(', ');
var i= e.length;
while (i--){
    document.createElement(e[i])
}

浏览器支持新标签后,还需要添加标签默认的样式:

article,aside,fiGCaption,figure,footer,header,hgroup,nav,section{display:block}
mark{background:#FF0;color:#000}

这样两段简单的javascript代码和CSS代码就可以让IE8及以下版本浏览器支持HTML5中的新标签。当然最好的方式是直接使用成熟的框架,目前有多个基于这一思想的框架,使用最多的是html5shim框架,html5shim的使用方法很简单,在页面的head部分添加框架的引用即可:

<!--[if lt IE 9]>
<script> src="Http://html5shim.Googlecode.com/svn/trunk/html5.js"</script>
<![endif]-->
  • HTML5中新特性的向后兼容

广义的HTML5,是包括了HTML5、css3以及新的api。因为新特性或多或少会存在浏览器的兼容问题,所以在使用新特性时检测浏览器是否支持此特性是非常必要的。当浏览器不支持新特性时,可以做合适的向后兼容处理。目前,并没有一个统一的方法检测新特性的支持,有些新特性有对应的API可以识别,有些新特性则只能通过一些技巧来识别。好在国外有热心的工程师们开发了多个检测新特性的框架,其中检测准确率和使用率较高的是Modernizr。

Modernizr框架的原理是自动检测浏览器是否支持新特性,并在<html>标签上添加对应的类。如果浏览器支持某个特性,则会添加一个以特性名称命名的类,反之,则添加一个以“no-”为前缀加上特性名称命名的类。同时也会生成一个名为modernizr的对象,通过判断此对象上的代表各特性的属性值,可以知道当前浏览器是否支持此新特性。Modernizr框架同时也包含了html5shim框架的功能,即可以让IE8及以下浏览器支持新标签。

Modernizr的使用方法很简单,首先在head部分引入框架的JavaScript文件:

<script src="js/modernizr.min.js"></script>

其次在html标签上添加一个名称为no-js的类:

<html class="no-js">

如果浏览器没有禁用JavaScript,则浏览器加载页面后,html标签上的类会动态替换和添加。加载后,html标签类似如下:

<html class="js canvas canvastext geolocation rgba hsla no-multiplebgs borderimage borderradius boxshadow opacity no-cssanimations csscolumns no-cssgradients no-cssreflections csstransfORMs no-csstransforms3D no-csstransitions  video audio cufon-active fontface cufon-ready">

在CSS代码中,可以通过使用这些类添加向后兼容代码,如下是一个使用多背景图的例子:

#nice {
    background: url(background-one.png) top left repeat-x;
}
.multiplebgs #nice {
    background: url(background-one.png) top left repeat-x,url(background-two.png) bottom left repeat-x;
}

对此框架感兴趣的读者,可以浏览Modernizr的官方网站,获得更多更详细的示例和使用方式。

  • 音频和视频的兼容

音频和视频是在页面中常用的多媒体标签,但浏览器兼容则是比较混乱,所以这里作为一个单独的话题。音频和视频是比较早的得到浏览器原生支持的特性,让音频和视频的播放不再限制于第三方的插件,尤其是在移动平台中。音频和视频是一块大蛋糕,各浏览器厂商都想分得最大的那一块,这也导致浏览器支持音频和视频的格式出现的分化。浏览器的支持音频格式的列表如下:

浏览器

版本

支持格式

Internet Explorer

9.0+

MP3, AAC

Chrome

6.0+

Ogg Vorbis, MP3, WAV(9.0+)

Firefox

3.6+

Ogg Vorbis, WAV

Safari

5.0+

MP3, AAC, WAV

Opera

10.0+

Ogg Vorbis, WAV

大约有80%的浏览器支持HTML5的<audio>标签,但是并没有一种统一的音频格式。从支持的格式来看,要让所有的浏览器可以播放audio元素上的音频,最佳的方式是提供MP3和Ogg两种格式,兼容代码如下:

<audio controls>
    <source src="elvis.mp3" type='audio/mpeg; codecs="mp3"'>
    <source src="elvis.oga" type='audio/ogg; codecs="vorbis"'>
    <!-- 向后兼容代码:如,显示提示信息、提供下载链接使用flash播放器等 -->
    浏览器不支持<code>audio</code>标签
</audio>

视频也有和音频类似的状况,如下是浏览器支持视频的格式列表:

浏览器

版本

支持格式

Internet Explorer

9.0+

MP4

Chrome

6.0+

MP4,WEBM,Ogg

Firefox

3.6+

WebM,Ogg

Safari

5.0+

MP4

Opera

10.0+

WebM,Ogg

从浏览器支持的视频格式来看,最佳的方式是提供WebM和MP4两种格式的视频。兼容代码如下:

<video controls>    
    <source src=video.webm type=video/webm>    
    <source src=video.mp4 type=video/mp4>      
    <!&mdash;向后兼容代码: -->      
    <iframe width="480" height="360" src="http://www.youtube.com/embed/xzMUyqmaqcw?rel=0" frameborder="0" allowfullscreen></iframe>  
</video>

感谢各位的阅读!关于“如何处理HTML5新标签的浏览器兼容版问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 如何处理HTML5新标签的浏览器兼容版问题

本文链接: https://lsjlt.com/news/73604.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何处理HTML5新标签的浏览器兼容版问题
    这篇文章给大家分享的是有关如何处理HTML5新标签的浏览器兼容版问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。HTML5规范毕竟是刚刚才定义完成的规范,还有一些浏览器并不能支...
    99+
    2024-04-02
  • 如何增强HTML5中video标签的浏览器兼容性
    如何增强HTML5中video标签的浏览器兼容性,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在过去 flash 是网页上最好的解决视频的方法...
    99+
    2024-04-02
  • webpack如何处理css浏览器兼容性问题
    今天小编给大家分享一下webpack如何处理css浏览器兼容性问题的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面...
    99+
    2024-04-02
  • HTML5中Placeholder解决新标签低版本浏览器下不兼容的示例分析
    HTML5中Placeholder解决新标签低版本浏览器下不兼容的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。placehold...
    99+
    2024-04-02
  • 如何解决老式浏览器兼容HTML5和CSS3的问题
    这期内容当中小编将会给大家带来有关如何解决老式浏览器兼容HTML5和CSS3的问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.让老式浏览器支持HTML5 ...
    99+
    2024-04-02
  • 如何解决IE浏览器的兼容问题
    这篇文章主要介绍如何解决IE浏览器的兼容问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!怎么用一行代码解决CSS各种IE各种兼容问题<meta http-equiv...
    99+
    2024-04-02
  • JavaScript浏览器的兼容问题如何解决
    本文小编为大家详细介绍“JavaScript浏览器的兼容问题如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript浏览器的兼容问题如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。inn...
    99+
    2023-07-04
  • Javascript中如何解决浏览器兼容问题
    Javascript中如何解决浏览器兼容问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Javascript解决常见浏览器兼...
    99+
    2024-04-02
  • HTML5的hidden属性如何兼容老浏览器
    这篇文章主要为大家展示了“HTML5的hidden属性如何兼容老浏览器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML5的hidden属性如何兼容老浏览器...
    99+
    2024-04-02
  • Vue2.0在IE11版本浏览器中的兼容性问题
    目录让IE11支持vue2.0下面是在网上找的两种方法第一种第二种总结用vue2.0开发做兼容时,你可能会发现vue项目在IE11版本浏览器中是空白的。。。 看到空白的页面你可能会懵...
    99+
    2023-05-14
    Vue2.0兼容IE11版本 IE11版本浏览器 Vue IE 兼容
  • 怎么让IE9以下版本的浏览器兼容HTML5
    这篇文章主要介绍“怎么让IE9以下版本的浏览器兼容HTML5”,在日常操作中,相信很多人在怎么让IE9以下版本的浏览器兼容HTML5问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • HTML与IE浏览器不兼容的问题
    HTML是一种Web页面标记语言,它被广泛应用于Web开发中。然而,HTML页面在不同浏览器中的表现却大不相同,特别是在IE浏览器中,HTML页面通常会出现各种兼容性问题,导致网页无法正常显示和使用。下面将介绍HTML与IE浏览器不兼容的问...
    99+
    2023-05-14
  • 如何快速解决浏览器的兼容性的问题
    本篇文章为大家展示了如何快速解决浏览器的兼容性的问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。由于各浏览器对页面的解析不同,会导致页面在不同浏览器中显示的样式不...
    99+
    2024-04-02
  • HTML 音频标签在不同浏览器的兼容性
    HTML5:所有现代浏览器都支持 HTML5 音频标签。 Ogg Vorbis:这是一个免费和开放的音频格式,受到大多数浏览器(包括 Firefox 和 Opera)的支持。 MP3:这是一个广泛使用的音频格式,但受到专利的限制,在某些...
    99+
    2024-03-16
    音频标签
  • PHP Session 跨域与浏览器兼容性的兼容处理
    随着互联网的发展,跨域访问已经成为一个常见的需求。然而,由于浏览器的同源策略限制,导致在跨域访问时出现了一些问题。其中,与浏览器的兼容性和 PHP Session 的跨域问题是开发中常遇到的难题。本文将介绍如何处理这些问题,并提供具体的代码...
    99+
    2023-10-21
    PHP 跨域 兼容处理
  • noscript 标签的应用:跨浏览器兼容性的关键
    noscript 标签是一个 HTML 元素,用于在浏览器禁用脚本时显示替代内容。它对于确保网站在各种浏览器和设备上都可访问至关重要。 跨浏览器兼容性 noscript 标签的跨浏览器兼容性因浏览器而异。虽然大多数现代浏览器都支持 nos...
    99+
    2024-04-02
  • CSS浏览器兼容问题的示例分析
    这篇文章主要介绍了CSS浏览器兼容问题的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 CSS对阅读器的兼容性偶然让人很头疼,大约...
    99+
    2024-04-02
  • 如何解决web开发中浏览器兼容性问题
    这篇文章主要介绍如何解决web开发中浏览器兼容性问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!兼容性问题及解决方式1.object-fit在ie11和edge中不兼容,可以一些c...
    99+
    2024-04-02
  • vue对于低版本浏览器兼容问题的解决思路
    目录准备工具库进阶使用问题例子解决思路语法不支持具体哪个使用了哪个库不支持兼容语法总结准备 由于采用了vite3而不是vue-cli,所以以前的很多兼容方式都不能做。接下来就看一下v...
    99+
    2023-02-10
    vue如何兼容低版本浏览器 vue浏览器版本支持 vue浏览器兼容性问题有哪些
  • 怎么处理HTML5+ API plusready的兼容问题
    这篇文章主要介绍“怎么处理HTML5+ API plusready的兼容问题”,在日常操作中,相信很多人在怎么处理HTML5+ API plusready的兼容问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作