当我们试图使用web上的新技术的时候,旧式浏览器总是我们心中不可磨灭的痛!事实上,所有浏览器都有或多或少的问题,现在还没有浏览器能够完整的识别和支持最新的html5结构元素。但是不用担心,你依然可以在最小化不可用造成的影响的基础上使它们跨浏览器工作。之前大前端介绍过这样的方法:HTML5 Shiv – 让该死的IE系列支持HTML5吧

如果你向一个页面中添加一个浏览器无法识别的元素,默认情况下浏览器会把它当做一个<span>标签对待(ie会当成一个匿名的内联元素处理).这篇文章中提到的html5元素大部分都可以拥有块状元素的表现,因此,让他们在旧式浏览器中正常展现的最简单的方式就是在css中给这些元素设置display:block;

article, section, aside, hgroup, nav, header, footer, figure, figcaption {display: block;}

这样可以解决大部分浏览器的渲染问题,但是有一个浏览器例外.猜猜是哪个浏览器?…是的,是不是很抓狂,对于IE的处理方式需要更巧妙一些,IE拒绝给它不认识的元素赋予样式。针对IE的解决方案看起来毫无逻辑,但是幸亏使用起来很简洁.对于你使用过的html5元素,你只需要在页面的头部插入一段这样的js:

<script>
document.createElement(‘article’);
document.createElement(‘section’);
document.createElement(‘aside’);
document.createElement(‘hgroup’);
document.createElement(‘nav’);
document.createElement(‘header’);
document.createElement(‘footer’);
document.createElement(‘figure’);
document.createElement(‘figcaption’);
</script>

这样IE就可以给这些元素赋予样式了。必须通过js来使css生效虽然看起来很别扭,但是至少我们可以让它们运行起来了。至于为什么可以这样?跟我讨论过的人中没有一个可以回答出来。当你试图在IE中打印一份样式表没有传输完毕的html5文档的时候同样还存在着一个问题。

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

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

  1. 不使用JavaScript让IE浏览器支持HTML5元素——张鑫旭

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2515 如果我们不做什 ...

  2. 如何让低版本IE浏览器支持HTML5标签并为其设置样式

    现代的浏览器都支持HTML5,HTML5定义了 8 个新的 HTML 语义元素.所有这些元素都是 块级 元素. 为了能让旧版本的浏览器正确显示这些元素,你可以设置 CSS 的 display 属性值为 ...

  3. html5.js让IE(包含IE6)支持HTML5元素方法

    原文地址:http://blog.sina.com.cn/s/blog_62a36ec401018oqb.html html5.js让IE(包含IE6)支持HTML5元素方法 微软的最新浏览器IE8及 ...

  4. html5shiv 是一个针对 IE 浏览器的 HTML5 JavaScript 补丁,目的是让 IE 识别并支持 HTML5 元素。

    html5shiv 是一个针对 IE 浏览器的 HTML5 JavaScript 补丁,目的是让 IE 识别并支持 HTML5 元素. 各版本html5shiv.js CDN网址:https://ww ...

  5. 让ie浏览器支持html5新标签的解决方法(使用html5shiv)

    没估计错的话旧版浏览器都是不识别这些新增的标签所以都是用行内元素来处理解决的,所以,有一个解决办法的突破口就是让它变成块状元素就不会处于同一行了,这样在新旧浏览器都是可以显示同样的效果,再者就是让浏览 ...

  6. 如何让旧浏览器支持HTML5新标签

    HTML5出现也不短了,很多网站的页面都进行了改版,为了降低代码量(不需要起太多的类名),提升加载速度,提高标签的语义性,因此,在网页中大量使用了section,article,header等HTML ...

  7. IT兄弟连 HTML5教程 设置IE9以下版本浏览器支持HTML5

    HTML2.HTML5刚发布时由于各浏览器之间的标准不统一,开发者的时间都浪费在解决Web浏览器之间的兼容性上.但由于W3C和WHATWG对HTML5新版本的制定,以及近年来对HTML5的使用,再加上 ...

  8. 让旧浏览器支持HTML5新增标签

    首先我们使用JS进行标签创建,为HTML文件创建我们需要的这几个HTML5标签. 接下来,我们需要使用CSS进行这几个HTML5标签的样式控制,这是因为,通过这种方法创建的新标签,默认是行内元素.   ...

  9. jquery实现上传图片预览(需要浏览器支持html5)

    jquery实现上传图片预览(需要浏览器支持html5) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

随机推荐

  1. DBCP(MySql)+Servlet+BootStrap+Ajax实现用户登录与简单用户管理系统

    目  录   简介 本次项目通过Maven编写 本文最后会附上代码 界面截图 登录界面 注册界面 登录成功进入主页 增加用户操作 删除用户操作 修改用户操作 主要代码 Dao层代码 DBCP代码 Se ...

  2. 手撕面试官系列(九):分布式限流面试专题 Nginx+zookeeper

    Nginx专题 (面试题+答案领取方式见侧边栏) 1.请解释一下什么是 Nginx?2.请列举 Nginx 的一些特性.3.请列举 Nginx 和 Apache 之间的不同点4.请解释 Nginx 如 ...

  3. C++构造和解析JSON

    JSON是一种轻量级的数据交互格式,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率,实际项目中经常用到,相比xml有很多优点,问问度娘,优点一箩筐. 第三方库 json解析选用j ...

  4. [译] QUIC Wire Layout Specification - Introduction & Overview | QUIC协议标准中文翻译(1) 简介和概述

    本文同步发布于: https://www.pengrl.com/p/33330/ ,转载请注明出处,谢谢. 目录 Introduction | 简介 Conventions and Definitio ...

  5. 关于java中是引用传递还是值传递的问题

    关于JAVA中参数传递问题有两种,一种是按值传递(如果是基本类型),另一种是按引用传递(如果是對象).首先以两个例子开始:1)public class Test2 { public static vo ...

  6. NEST refresh flush forcemerge

    public void Refresh() { client.Refresh("employee"); } public void Flush() { client.Flush(& ...

  7. AWS--Lamdba

    分享一个Lambda相关的连接 https://blog.csdn.net/m0_37204491/article/details/72829477

  8. np.newaxis的使用及有趣的数组相乘

    a=np.array([1,2,3,4])a=a[np.newaxis,:] #固定行,相当于1行多列b=np.array([2,4,6]) b=b[:,np.newaxis] #固定列,相当与多行1 ...

  9. 笔记本用hdmi连接显示器后无法播放声音问题

    打开控制面板的声音选项,把默认播放音频的设备设置成笔记本扬声器.这种方法直接利用笔记本扬声器

  10. permission 权限清单

    <uses-permission android:name="android.permission.READ_CALENDAR" /> <uses-permiss ...