低版本IE正常运行HTML5+CSS3网站的3种解决方案
2023-06-13 09:15:19 时间
如果开发时按最低标准,比如IE6不支持的特性,我们统统不用,那就没有必要写这篇文章了;但我想这种情况极少,更多的开发,是在现代浏览器上使用它们支持的特性,而在早期浏览器上做一定的降级处理,这就是所谓“渐进增强”,也是本文要说的重点。通过下面的方法,希望可以让网站也能够在低版本IE浏览器上奇迹般地运行得更好!
htmlshiv.js
Remy的HTML5shiv通过JavaScript来创建HTML5元素(如main,header,footer等)。在某种程度上通过JavaScript创建的元素是styleable(可样式)的。我们可以花很多时间来思考其运行原理,但谁会在乎呢?这种策略在所有产品网站上仍然是必须使用的。
Selectivizr.js是一个不可思议的资源,用于填充不支持的CSS选择器和属性,包括重要的last-child。在最近的重设计中,我嵌入了selectivizr,并在更老的IE浏览器上也不会错过任何细节。下面是我的实现代码:
现代项目绝对必须的。只在老版本IE时才加载。
另外,Modernizr脚本中已经添加HTML5浏览器支持脚本html5shiv,我们只要引用Moernizr.js文件,IE9以下的IE浏览器就支持HTML5添加的语义标签如nav、section、article等,也可以使用CSS对它们进行样式化。
条件注释
下面这样最土的情况你肯定看到过。但无论丑陋与否,事实上这段代码完全按预期的方式运行:
<!--[ifltIE7]><htmlclass="ie6"lang="en"><![endif]-->
<!--[ifIE7]> <htmlclass="ie7"lang="en"><![endif]-->
<!--[ifIE8]> <htmlclass="ie8"lang="en"><![endif]-->
<!--[ifIE9]> <htmlclass="ie9"lang="en"><![endif]-->
<!--[if(gtIE9)|!(IE)]><!--><htmllang="en"><!--<![endif]-->
上面的方法是作用于css,来写一些针对IE各版本的样式差异。先判断用户用的哪个IE版本,然后在标签上加上该版本的class,这样可以方便hack。
然后我们在css文件中就可以这样写:
.ie6xxx{};
.ie7xxx{};
这是目前小编认为效率最高的方法,这个方法不需要或等待JavaScript,而且也不需要重量级的JavaScript库。你定义的styles类立即生效,还没有闪屏。
尽管IE浏览器正在迎头赶上竞争对手,新版本IE也有非常大的变化,并希望借助全新的IE重塑网络体验。但在国内旧版IE仍然是比较流行。好消息是,这些资源在所有现代浏览器上运行良好,代价也并不高!
相关文章
- HTML5 Canvas的简单使用
- 【CSS3】---- 纯 css 控制 html5旋转音乐图标,控制背景音乐
- 关于html5的PostMessage的用法总结
- java和html_如何区别html和html5
- HTML5+CSS3海绵宝宝网站设计(3)
- HTML5和CSS3新特性
- 【HTML5】HTML5 多媒体标签 ① ( audio 音频标签 | 音频标签常见属性值设置 | 音频标签默认代码设置 | 音频标签设置多种类型音频文件 )
- EditPlus下载图文教程:EditPlus怎么添加html5标签关键词设置
- html5超简单贪吃蛇详解编程语言
- HTML5 Canvas arc()函数详解编程语言
- HTML5 + CSS3 实现地球绕太阳公转详解编程语言
- IOS手机 html5页面 数字变成蓝色链接的原因详解编程语言
- 深度探索 HTML5 与 MySQL(html5mysql)
- HTML5 <keygen> 标签
- 如何使用HTML5连接MySQL数据库:同步数据更加高效和安全。(html5连接mysql数据库)
- HTML5 Web 存储
- HTML5与Oracle结合,展现出更多可能(html5 oracle)
- HTML5之lang属性与dir属性的详解
- jQuery中使用data()方法读取HTML5自定义属性data-*实例
- Html5的placeholder属性(IE兼容)实现代码