我正在构建一个在PC上使用的网络应用程序.为了防止与IE8或更高版本的浏览器出现兼容性问题,应该远离哪些HTML5标签?
注:大多数问题都是1-3岁的问题.
我正在构建一个在PC上使用的网络应用程序.为了防止与IE8或更高版本的浏览器出现兼容性问题,应该远离哪些HTML5标签?
注:大多数问题都是1-3岁的问题.
您问我应该远离哪些HTML5标签.
据我所知,HTML5中的一些标签是出于语义原因制作的.比如下面的例子.
<article> <section> <aside> <nav> <header> <footer> ..ect
这些几乎都很好用,只需要一点CSS就可以了.display: block;
才能在大多数浏览器中正常工作,不过在较旧的浏览器中也是如此.Internet Explorer需要在Javascript中创建元素才能与之兼容.
Here is an example.
document.createElement('article');
将<article>
元素设置为在较旧的Internet Explorer中使用.
对于需要Javascript功能才能工作的更高级的HTML5标记,如下所示.
<audio> <video> <source> <track> <embed> And most importantly <canvas>
这些元素在较旧的浏览器中较难支持/shiv.虽然我在底部包含了一个跨浏览器多边形填充的链接,但我没有亲自调查过它们.
所以我想说,任何不需要Javascript功能的元素都可以与少量跨浏览器支持代码一起使用.
If your targeting >IE8 then you should be fine if you use a 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]);
}
和<audio> <video> <canvas>
在< IE 9中不受支持
The <embed>
element has partial support in > IE8
You should also look into this tag.个
<meta http-equiv="X-UA-Compatible" content="IE=edge">
这个meta
标记告诉Internet Explorer以可用的最高IE模式显示页面,而不是像IE7或8那样进入兼容模式并呈现页面.关于那Here个人的更多信息.
要想开始,你可以go 100号房.
有关浏览器兼容性支持表,您可以查看-100
HTML5 SHIV-100
HTML5多边形填充列表-100
Update个
正如在 comments 中提到的
小心元标签X-UA-Compatible.如果使用类似html5样板的东西,在元素周围有条件注释(html5 doctype IIRC也会出现这种情况),那么即使使用标签,IE9也可能会被迫进入IE7标准模式.我又来了
你也许想调查一下这件事,我目前没有任何证据支持这件事.