-1

我想知道您是否知道当客户端拥有 ie 时启用或禁用 css 规则的方法。

我有这种风格

 #number_one{
    background-image: url("../img/pins/1.png");    
    top: 250px;
    left: 115px;    
    filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../img/pins/1.png',sizingMethod='scale');
    -ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../img/pins/1.png',sizingMethod='scale')";

}

我希望背景图像可以在除 IE 之外的所有浏览器上工作,因为过滤器将完成背景图像工作。

有谁知道如何解决这个问题?非常感谢。

4

3 回答 3

6

将其包含在 IE 特定样式的 head 中并在此处覆盖 CSS:

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

分别针对每个版本的 IE 也是可行的:

<!--[if IE 6]>
  <link rel="stylesheet" href="http://mysite.com/path/to/ie6-only.css" type="text/css" media="screen, projection">
<![endif]--> 
于 2013-10-15T14:05:21.103 回答
3

一个简单的方法(不需要多个单独的样式表[顺便说一句也可以])是<html>用这个替换你的标签:

<!--[if IE]>
 <html class="ie">
<![endif]-->

<!--[if !IE]>
 <html class="normal">
<![endif]-->

在您的 CSS 中,使用它仅针对 IE:

html.ie #number_one{
  background-image:none;
}

或者使用它来定位除 IE 之外的所有浏览器:

 html.normal #number_one{
    background-image: url("../img/pins/1.png");    
    top: 250px;
    left: 115px;    
    filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../img/pins/1.png',sizingMethod='scale');
    -ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../img/pins/1.png',sizingMethod='scale')";

}
于 2013-10-15T14:05:51.347 回答
1

您应该能够创建一个仅限 IE 的样式表,并使用我发现的以下方法相应地更改类:

要使用条件注释定位 IE,只需将此行添加到 HTML 文件的 >head< 标记中:

1   <!--[if IE 6]><link rel="stylesheet" href="http://mysite.com/path/to/ie6.css"      type="text/css" media="screen, projection"><![endif]-->
2    
3   <!--[if IE 7]><link rel="stylesheet" href="http://mysite.com/path/to/ie7.css" type="text/css" media="screen, projection"><![endif]-->

这些条件注释将被所有其他浏览器忽略,因此只有 IE 6 和 IE 7 会分别加载这些样式表。现在您需要做的就是在您的服务器上创建文件并覆盖任何与 IE 标题混淆的 CSS 规则。

于 2013-10-15T14:10:25.273 回答