使用if / then浏览器逻辑的CSS

时间:2009-09-08 23:07:32

标签: css cross-browser

对于浏览器< IE7,我想使用某种样式属性,而对于其他浏览器我想使用另一种。我可以使用单个css文件执行此操作,还是必须执行以下逻辑以包含ie hack css文件?

7 个答案:

答案 0 :(得分:9)

以下是一个示例,您可以使用IE6特定的CSS来覆盖IE 6或更低版本的特定CSS类:

<link rel="stylesheet" type="text/css" href="/css/screen.css" title="MySiteStyle" media="screen" />
<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="/css/screen-ie6.css" title="MySiteStyle" media="screen" />
<![endif]--> 

或者,你可以在每个元素的基础上这样做:

<!--[if (!IE) | (gt IE 6)]>
<div class="header">
<![endif]--> 
<!--[if lte IE 6]>
<div class="ie6_header">
<![endif]--> 

MSDN提供了有关IE Conditional Comments支持的更多详细信息。

答案 1 :(得分:2)

那么你可以使用javascript来检测浏览器并根据它来应用一个类。例如,请参阅:

JQuery Attributes

答案 2 :(得分:2)

您可以使用conditional comments

<!--[if lt IE 7]>
  <style>
    /*your style for IE <=6*/
  </style>
<![endif]-->

<![if !IE | (gte IE 7)]>
  <style>
    /*your style for other browsers*/
  </style>
<![endif]>

我发现它是这种事情最干净的解决方案。

答案 3 :(得分:2)

您可以使用CSS hacks。但你不应该。

答案 4 :(得分:1)

您可以在某种程度上使用CSS表达式。

有关示例,请参阅http://gadgetopia.com/post/2774。这些不会绕过条件CSS属性本身,但它们允许您动态地改变CSS属性的值。

答案 5 :(得分:1)

在jQuery技巧上查看这个插件: http://jquery.thewikies.com/browser/

一个插件来做ghills所说的,这是一个很好的干净方法。

答案 6 :(得分:0)

以下page将向您展示专门针对IE7的6个CSS黑客攻击。您不应该使用它们,但它们是获得您网站的正确外观的最简单方法。