if条件css兼容解决

2010-03-17 18:20:09 css hack,IE的if条件css hack

针对不同的IE浏览器版本,使用if条件来设置对应css样式,从而解决css hack
<!--[if IE]> Only IE <![endif]-->
所有的IE可识别
<!--[if IE 5.0]> Only IE 5.0 <![endif]-->
只有IE5.0可以识别
<!--[if gt IE 5.0]> Only IE 5.0+ <![endif]-->
IE5.0包换IE5.5都可以识别
<!--[if lt IE 6]> Only IE 6- <![endif]-->
仅IE6可识别以内的css样式
<!--[if gte IE 6]> Only IE 6/+ <![endif]-->
IE6以及IE6以下的IE5.x都可识别
<!--[if lte IE 7]> Only IE 7/- <![endif]-->
仅IE7可识别以内的css样式
特别说明ie8不能使用if条件来设置div css样式,这里的“<!-”是css注解css注释css解释中用到相同,可以进入了解css 注释。这里使用css注释方式来解决if条件隐藏条件,从而在其它不符合if条件浏览器下不显示条件及解释if条件里样式,你可以了解下css隐藏其它方法。

通过以上的if条件来对不同版本浏览器调用不同css样式来解决css hack方法。
实例如下:
接下来我们只实验一个只有微软IE可识别,火狐不识别例子代码如下

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>IE的if条件css hack实例</title>
<style type="text/css">
<!--[if IE]>
<!--
.ys1 {color: #FF0000}
-->
<![endif]-->
</style>
</head>

<body>
<p>&lt;!--[if&nbsp;IE]&gt;&nbsp;Only&nbsp;IE&nbsp;&lt;![endif]--&gt;</p>
<p>我是<span class="ys1">html8.com.cn</span>测试样式
</p>
</body>
</html>


 

截图如下

左边为微软IE浏览器,右边为火狐浏览器,通过if条件对样式设置只在ie中起作用后效果图。
特别说明的if条件在ie8中不能生效。

更新