ie8 样式不兼容解决方案
[ 2019-6-14 14:53:00 | By: 易碎 ]
 
有时做网做明明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。
 
 
  • 标签:ie8 hack 
  • 发表评论:
     

    时 间 记 忆
    <<  < 2019 - >  >>
    1
    2 3 4 5 6 7 8
    9 10 11 12 13 14 15
    16 17 18 19 20 21 22
    23 24 25 26 27 28 29
    30
    最 新 评 论
    最 新 日 志
    最 新 留 言
    搜 索
    用 户 登 录
    友 情 连 接


     
    天涯博客欢迎您!