标题 | CSS兼容性问题 && CSS HACK |
内容 | 以前做网页的时候,只考虑 IE6 和 FF 的兼容性,公司换了,要求也高了,FF和IE 6 7 8 要全兼容了, 碰到要单独Hack IE8的。当然,用注释非常方便,只要添加相应的注释就可以解决。但问题是,为了一句CSS写多一个文件,或者在header上添加注释,那显然不是懒人的习惯做法。结论如下: selector{ property:value; /* 所有浏览器 */ property:value9; /* 所有IE浏览器 */ +property:value; /* IE7 */ _property 当然,注意顺序。根据CSS的优先性,上面的写法,分别针对Firefox、IE8、IE7和IE6显示值。让我们看看这个: CSS代码如下: p.ie{ height:60px;text-align:center;line-height:60px;border:1px dashed #bbb;background:#f7f7f7;font:15; color:blue; // 所有浏览器 color:brown9; // 所有IE浏览器 +color:red; // IE7 _color:green; // IE6 } HTML 代碼: <body> <p> <span>嘿嘿,小子竟然也用Firefox,蓝色文字。</span> <!--[if IE 8]>不错不错,挺先进的嘛,使用IE8呢!文字是褐色的。<![endif]--> <!--[if IE 7]>你,IE7,红色文字!<![endif]--> <!--[if IE 6]>孩子,虽然显示的是绿色文字,不过,IE6可不是好东西呢!<![endif]--> </p> </body> 注意下面介绍的这些hack写法仅适用于XHTML1.0。如果没有在HTML最前加上 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xmlns=""> 那么效果将不一样!此外,这里所说的IE8,不是指IE8的兼容模式,因为IE8的兼容模式其实就是IE7。 区别IE6、7与FF/IE8: background:blue;*background:orange; 引用 显示效果: IE 6/7:orange FF/IE8:blue 原理:FF/IE8不支持*开头,而IE6/7都支持。 区别IE6与IE7/IE8/FF: background:green;_background:blue; 引用 显示效果: IE7/8/FF:green IE6:blue 原理:IE6支持下划线"_",IE7、8和firefox均不支持下划线。 区别FF/IE8和IE6/7: background:orange;+background:green;-background:blue; 或者 background:orange;*background:green!important;*background:blue; 引用 显示效果: IE6:blue IE7:green FF/IE8:orange 原理:IE6能识别-,IE7能识别+,IE8和FF都不能识别+和- IE8/FF都不识别*,IE7优先识别!important,IE6不能识别!important。 关于IE8的hacks: .test{ color:/***/#00f9; /* IE8 only */ color:#00f9; /* 适用于所有IE版本 */ } 可同时区分IE8、IE7、IE6、Firefox的CSS hacks: .test{ color:#000; /* Firefox */ color:/***/#00f9; /* IE8 */ *color:#f00; /* IE7 */ _color:#0f0; /* IE6 */ } 添加相应的注释解决兼容性问题 注释相应的Css文件: <link rel="stylesheet" type="text/css" href="css/style.css" media="screen" /> <!--[if IE 6]> <link rel="stylesheet" type="text/css" href="css/IE6style.css" media="screen" /> <![endif]--> <!--[if IE 7]> <link rel="stylesheet" type="text/css" href="css/IE7style.css" media="screen" /> <![endif]--> <!--[if gte IE 8]> <link rel="stylesheet" type="text/css" href="css/IE8style.css" media="screen" /> <![endif]--> 注释相应的Css 内容: <!--[if ie 6]> <style> <!-- #warp{ padding-bottom:11px;} --> </style> <![endif]--> <!--[if ie 7]> <style> <!-- #warp{ padding-bottom:11px;} --> </style> <![endif]--> <!--[if ie 8]> <style> <!-- #warp{ padding-bottom:11px;} --> </style> <![endif]--> |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。