如何让ie8及一下的版本支持css3选择器

html-css027

如何让ie8及一下的版本支持css3选择器,第1张

Selectivizr可以让IE6~8支持CSS3伪类和属性选择器,selectivizr是一个JavaScript工具,使IE浏览器也可以支持CSS3伪类以及属性选择器,使用很简单,只要把js include到页面上。示例代码如下:

<script type="text/javascript" src="selectivizr.js"></script>

<![endif]- ->

Selectivizr的优点在于:

1. 让老的IE浏览器支持19个CSS3伪类,2个伪元素,以及所有的属性选择器。

2. 即使你完全不懂JavaScript,也没有关系,因为你只要链接这个文件就ok了。

3. 可以与现存的JavaScript库协调工作。

htmlshiv.js

Remy的 HTML5shiv通过JavaScript 来创建HTML5元素(如 main, header, footer等)。在某种程度上通过JavaScript 创建的元素是 styleable(可样式)的。我们可以花很多时间来思考其运行原理,但谁会在乎呢?这种策略在所有产品网站上仍然是必须使用的。

<--[if lt IE 9]><[endif]-->

selectivizr.js

Selectivizr.js 是一个不可思议的资源,用于填充不支持的CSS选择器和属性,包括重要的 last-child。在最近的重设计中,我嵌入了 selectivizr,并在更老的 IE 浏览器上也不会错过任何细节。下面是我的实现代码:

<--[if lte IE 8]><[endif]-->

现代项目绝对必须的。只在老版本IE时才加载。

另外,Modernizr 脚本中已经添加 HTML5 浏览器支持脚本 html5shiv,我们只要引用 Moernizr.js 文件,IE9 以下的 IE 浏览器就支持 HTML5 添加的语义标签如 nav、section、article 等,也可以使用 CSS 对它们进行样式化。

条件注释

下面这样最土的情况你肯定看到过。但无论丑陋与否,事实上这段代码完全按预期的方式运行:

<--[if lt IE 7 ]> <[endif]-->

<--[if IE 7 ]><[endif]-->

<--[if IE 8 ]><[endif]-->

<--[if IE 9 ]><[endif]-->

<--[if (gt IE 9)|(IE)]><--> <--<[endif]-->

上面的方法是作用于css,来写一些针对IE各版本的样式差异。先判断用户用的哪个IE版本,然后在标签上加上该版本的class,这样可以方便hack。

然后我们在css文件中就可以这样写:

.ie6 xxx {}.ie7 xxx {}