有时做网做明明css样式表是正常的但ie8不兼容,网页显示不正常,css如何兼容ie8呢,下面看解决办法:
IE6、IE7、Firefox等浏览器的兼容性问题让网页设计师们大伤脑筋,本来网页设计是件很有趣的事情,但是却被这多余兼容工作伤脑筋,特别是让人唾弃的IE6,多少人想让它消失,可是它就是消失不了,微软还说不会停止对IE6,真够郁闷的。
现在呢,IE8正式版已经出来一段时间了,不少网民被微软的Update提示安装上了IE8,这下又给设计师带来了麻烦,还好微软良心发现,把IE8做得比较符合标准,与其他标准浏览器区别不大,可是它还是与其他浏览器有区别的。
怎么办呢?我一直在用IE6,不想用IE8,电脑里有个绿色版的IE6,还有绿色版的Firefox,对于网页兼容测试,我用IE6、IE7、Firefox三个浏览器测试,因为没安装IE8,所以一直没能测试。
大家都知道,IE8是有两种解析模式的,一种是IE8 Standard Modes
:默认的最标准的模式,严格按照W3C相关规定,一种是IE7 Standards Modes
:IE7现在用的解析网页的模式。IE7还算是不错的浏览器,如果让IE8浏览器自动切换到IE7,IE6模式,那我们就不用为IE8布局兼容问题烦恼了,而这个开关只有一行代码:
< http-equiv="x-ua-compatible" content="ie=7" /> 或者< http-equiv="x-ua-compatible" content="ie=6" />
其实就是比较霸道的让ie8以ie7的标准或者是以 ie6 的标准去解析整个页面!
在网页的head里加入以上这段代码,用IE8访问时就会自动切换到IE7模式,如果你的网站在IE7下显示正常,那在IE8下也可以正常显示了。加入这段代码会不会影响其它的浏览器呢?不会,X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的,所以你就放心使用吧!
就这样一段代码就可以让你的网站轻松兼容IE8了。
{这里插入ie hack}
我自己一般是使用的判断方式
本文章是网上搜索得来
一、IE6 css hack:
1. *html Selector {} /* Selector 表示 css选择器 下同 */
2. Selector { _property: value; } /* property: value 表示 css 的属性名: 属性值 下同 */
3. Selector { _property/**/: /**/value; }
4. Selector { -property: value; } /*IE6 css hack常用习惯推荐使用下划线_ */
二、IE7 css hack:
1. *+html Selector {}
2. *:first-child+html Selector {}
三、IE8 css hack:
Selector { /* 注意看value值的 */
property: value1; /* W3C MODEL */
property: value2\0; /* IE 8+ */
property: value1\9\0; /* IE 9+ */
}
四、IE6、IE7、IE8共有的css hack:
Selector { property: value\9; }
五、IE6、IE7共有的css hack:
1. Selector { *property: value; }
2. Selector { #property: value; }
3. Selector { +property: value; }
六、IE8+ css hack:
Selector { property: value\0; }
七、IE9+ css hack:
Selector { property: value\9\0; }
八、判断方式:
<!–[if !IE]><!–> 除IE外都可识别 <!–<![endif]–>
<!–[if IE]> 所有的IE可识别 <![endif]–>
<!–[if IE 6]> 仅IE6可识别 <![endif]–>
<!–[if lt IE 6]> IE6以及IE6以下版本可识别 <![endif]–>
<!–[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]–>
<!–[if IE 7]> 仅IE7可识别 <![endif]–>
<!–[if lt IE 7]> IE7以及IE7以下版本可识别 <![endif]–>
<!–[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]–>
<!–[if IE 8]> 仅IE8可识别 <![endif]–>
<!–[if IE 9]> 仅IE9可识别 <![endif]–>
项目 | 范例 | 说明 |
! |
[if !IE] |
The NOT operator. This is placed immediately in front of
the feature, operator, or subexpression to reverse the Boolean meaning
of the expression. NOT运算符。这是摆立即在前面的功能,操作员,或子表达式扭转布尔表达式的意义。 |
lt |
[if lt IE 5.5] |
The less-than operator. Returns true if the first argument is less than the second argument. 小于运算符。如果第一个参数小于第二个参数,则返回true。 |
lte |
[if lte IE 6] |
The less-than or equal operator. Returns true if the first argument is less than or equal to the second argument. 小于或等于运算。如果第一个参数是小于或等于第二个参数,则返回true。 |
gt |
[if gt IE 5] |
The greater-than operator. Returns true if the first argument is greater than the second argument. 大于运算符。如果第一个参数大于第二个参数,则返回true。 |
gte |
[if gte IE 7] |
The greater-than or equal operator. Returns true if the first argument is greater than or equal to the second argument. 大于或等于运算。如果第一个参数是大于或等于第二个参数,则返回true。 |
( ) |
[if !(IE 7)] |
Subexpression operators. Used in conjunction with boolean operators to create more complex expressions. 子表达式运营商。在与布尔运算符用于创建更复杂的表达式。 |
& |
[if (gt IE 5)&(lt IE 7)] |
The AND operator. Returns true if all subexpressions evaluate to true AND运算符。如果所有的子表达式计算结果为true,返回true |
| |
[if (IE 6)|(IE 7)] |
The OR operator. Returns true if any of the subexpressions evaluates to true. OR运算符。返回true,如果子表达式计算结果为true。
|