我正在构建一个可在PC上使用的Web应用程序。为了防止与IE8及更高版本的浏览器出现兼容性问题,需要远离哪些HTML5标签?
注意:关于此主题的大多数问题都是1-3岁。
我正在构建一个可在PC上使用的Web应用程序。为了防止与IE8及更高版本的浏览器出现兼容性问题,需要远离哪些HTML5标签?
注意:关于此主题的大多数问题都是1-3岁。
Answers:
您问要远离哪些HTML5标签。
好吧,据我所知,HTML5中的某些标签是出于语义原因而制作的。例如以下内容。
<article> <section> <aside> <nav> <header> <footer> ..ect
这些几乎可以使用,并且只需要一些CSS例如。display: block;
可以在大多数浏览器中正常工作,尽管在较旧的浏览器中,即 Internet Explorer,您需要在Javascript中创建一个元素,以使其兼容。
这是一个例子。
document.createElement('article');
将设置该<article>
元素以在较旧的Internet Explorer中使用。
对于需要Javascript功能才能工作的更高级的HTML5标签,如下所示。
<audio> <video> <source> <track> <embed> And most importantly <canvas>
这些元素在较旧的浏览器中很难支持/转换。尽管我在底部提供了跨浏览器polyfill的链接,但是我没有亲自调查它们。
因此,我想说,不需要Javascript功能的任何元素都非常适合与少量的跨浏览器支持代码一起使用。
如果您的定位条件> IE8,那么使用shiv就可以了。
我怎么称呼较旧的浏览器?<IE9
今天的浏览器支持HTML5标签。
<section>, <article>, <aside>, <header>, <footer>,
<nav>, <figure>, <figcaption>, <time>, <mark>
小于8的Internet Explorer不支持,但可以这样修复。
CSS:
section, article, aside, header, footer, nav, figure, figcaption{
display: block;
}
time, mark {
display: inline-block;
}
Javascript:
var elements = ['section', 'article', 'aside', 'header', 'footer', 'nav', 'figure', 'figcaption', 'time', 'mark'];
for( var i = 0; i < elements.length; i++ ) {
document.createElement(elements[i]);
}
并且<IE 9中<audio> <video> <canvas>
不受支持
该<embed>
元件具有在部分支持> IE8
您还应该查看此标签。
<meta http-equiv="X-UA-Compatible" content="IE=edge">
此meta
标记告诉Internet Explorer以可用的最高IE模式显示页面,而不是进入兼容模式并像IE7或8那样呈现页面。关于此的更多信息。
要开始踢球,您可以签出HTML5 BoilerPlate
有关浏览器兼容性的支持表,请访问-http://caniuse.com/
HTML5 Shiv- https://github.com/afarkas/html5shiv
HTML5 Polyfills列表-https ://github.com/Modernizr/Modernizr/wiki / ...
更新资料
如评论中所述
请小心元标记X-UA-Compatible。如果您使用诸如html5样板之类的东西,并在元素周围有条件注释(html5 doctype IIRC也会发生这种情况),则即使使用标记,也可能会导致IE9强制其进入IE7标准模式。IE再次罢工
您可能需要调查一下,目前我没有任何备份。
通常,存在问题。
有人告诉我,您的问题是用措辞询问HTML 5 标记的,但是根据您可能找到或编写的任何Javascript查看新功能也是很有用的。
实际上,推荐的方法是测试功能的存在,而不是特定的浏览器。该Modernizr的脚本可能会在这方面有所帮助,但也有报道的在HTML5无法检测功能。
某些功能,例如local storage
回到IE8。
其他诸如FileReader
,则需要IE10 / Firefox21 / Chrome27
有关当前信息,请尝试http://caniuse.com
要快速比较哪些浏览器中可用的标签以及每个标签的支持水平,html5test.com是一个很好的资源。
html5 compatability
我确定有很多资源。
另外,为了获得最佳的跨浏览器兼容性,我建议您使用Eric Meyer创建的reset.css。 http://meyerweb.com/eric/tools/css/reset/ 这使浏览器之间的元素有所不同,在所有浏览器中的行为相同。