css条件格式

时间:2009-06-14 13:55:22

标签: html css

我有以下代码来检查用户是否正在使用IE7 ......并且它需要超越.web_info样式。如果不是IE7它使用默认样式,如果它不是IE,它将使用ff_styles.css。这似乎不起作用。

<link rel="stylesheet" type="text/css" href="../styles.css">


<![if !IE]>
<link rel="stylesheet" type="text/css" href="../ff_styles.css">
<![endif]>

<![if IE 7]>
<style type="text/css">
.web_info
{
left: 450px;
top: 200px;
width: 300px;
height: 60px;   
}
</style>
<![endif]>

有什么建议吗?谢谢

3 个答案:

答案 0 :(得分:4)

这不应该像

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

<!--[if !IE]>
...
<![endif]-->

请注意

<!--[if !IE]>

永远不会产生真实,因为这些条件性评论仅由IE解释。

答案 1 :(得分:3)

条件注释是IE特定的,因此“<![if !IE]>”不是firefox或任何其他浏览器的有效指令。另外我建议你尝试以下语法:

<!--[if IE 7]>
<style type="text/css">
.web_info
{
left: 450px;
top: 200px;
width: 300px;
height: 60px;   
}
</style>    
<![endif]-->

关于我的最后一点注意事项:由于IE7 / IE8大部分都符合标准,如果可能的话,应该避免使用这些CSS黑客攻击。

<强>更新 感谢slosd我站得住了!根据“Supporting IE with conditional comments”,您可以使用以下内容隐藏IE中的内容:

<!--[if !IE]>-->
do something; IE will ignore this, other browsers parse it
<!--<![endif]-->

很抱歉给我带来的不便!

完整的工作示例:

<link rel="stylesheet" type="text/css" href="../styles.css">

<!--[if !IE]>-->
  <link rel="stylesheet" type="text/css" href="../ff_styles.css">
<!--<![endif]-->

<!--[if IE 7]>
  <style type="text/css">
  .web_info{
    left: 450px;
    top: 200px;
    width: 300px;
    height: 60px;   
  }
  </style>
<![endif]-->

答案 2 :(得分:2)

不要检查浏览器是否不是IE,检查它是否是IE7然后是否是IE,然后默认为回退。 更多信息:http://www.quirksmode.org/css/condcom.html