18910140161

让更多浏览器支持html5元素的简单方法

顺晟科技

2021-06-16 10:10:36

273

当我们试图在网络上使用新技术时,旧浏览器总是我们心中不可磨灭的痛苦!其实所有浏览器或多或少都有问题。目前还没有浏览器能完全识别和支持最新的html5结构元素。但是不要担心,您仍然可以使它们跨浏览器工作,同时更大限度地减少不可用的影响。之前大前端介绍过这个方法:HTML5 shiv——让该死的IE系列支持html 5。

如果您在页面中添加了浏览器无法识别的元素,默认情况下浏览器会将其视为span标记(即会将其视为匿名内联元素)。本文提到的html5元素大部分都可以有block元素的表示,所以让它们在旧浏览器中正常显示最简单的方法就是在css中为这些元素设置display:block

文章、部分、侧边、组、导航、页眉、页脚、图形、图表标题{ display: block}

这样可以解决大部分浏览器的渲染问题,除了一个浏览器。猜猜是哪个浏览器?对,是不是疯了?工业工程需要更加巧妙的处理。IE拒绝给不知道的元素赋予风格。IE的解决方案看似不合逻辑,幸好使用起来很简单。对于您已经使用的html5元素,您只需要在页面的头部插入一个js:

脚本

document . CreateElement(' article ');

document . CreateElement(' section ');

document.createElement('旁白');

document . CreateElement(' hgroup ');

document . CreateElement(' nav ');

document . CreateElement(' header ');

document.createElement('页脚');

document . CreateElement(' figure ');

document . CreateElement(' fig caption ');

/script

这样,IE就可以给这些元素赋予风格。css必须通过js变得有效,这看起来很尴尬,但至少我们可以让它们工作。至于为什么这是可能的?我讨论过的人没有一个能回答。当你试图在IE中打印一个样式表没有完全传输的html5文档时,也会出现问题。

ie中的打印问题可以用HTML5 Shiv javascript库解决,也是通过添加document.createElement命令实现的。你可以把它放在IE9之前版本的IE条件注释里,这样现代浏览器就不需要执行不必要的js了。

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航