带有if/then浏览器逻辑的CSS

带有if/then浏览器逻辑的CSS,css,cross-browser,Css,Cross Browser,对于

对于您可以使用javascript来检测浏览器并基于此应用类。例如,请参见:


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

有关一些示例,请参见。这些属性本身无法绕过条件CSS属性,但它们允许您动态更改CSS属性的值。

您可以使用:


/*其他浏览器的样式*/

我发现这是解决这类问题最干净的办法。

你可以用。但是你不应该这样做。

在jQuery提示中,请查看此插件:


ghills建议的插件,这是一个很好的干净方法。

以下是一个示例,说明如何包含IE6特定的CSS来覆盖IE6或更低版本的特定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提供了更多关于支持的详细信息。

下面将向您展示6种专门针对IE7的CSS攻击。您不应该使用它们,但它们是为您的网站获得准确外观的最简单方法。

不在OP询问的“单一css文件”中。@chssly76:这是一个选项,而不是一个要求。但是你是对的,这个选项需要两个文件(我通常只覆盖IE特定样式表上的一些内容)。无论如何,我仍然认为这是一种更干净的方法。请注意,这将为所有版本的IE创建特定于IE的风格,不仅仅是@Franci Penov:我只是想给他一个指针,但你是对的,所以我更新了答案。有更简单的方法,看看这里的其他答案。
<!--[if (!IE) | (gt IE 6)]>
<div class="header">
<![endif]--> 
<!--[if lte IE 6]>
<div class="ie6_header">
<![endif]-->