0

我必须将border-radiusCSS 属性应用于按钮,但前提是浏览器不是 Internet Explorer 9。否则我想使用该background-image属性。我尝试background-image使用条件注释为 IE9 应用,但它不起作用(border-radius“通用”CSS 中的属性也被应用到 IE9,而不是background-image)。

如何更改它以使其根据浏览器版本应用所需的 CSS?

/*For IE9*/
<!--[if lte IE 9]>
.PopupBtn
{
  background-image: url("../Images/new-btn.png");
  height: 28px;
  width: 99px;
  border-left-width: 0px;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  cursor: pointer;
}
<![endif]-->

/*Style.css(general)*/
.PopupBtn
{
  -moz-box-shadow: inset 0px 2px 1px 0px #0d0d0d;
  -webkit-box-shadow:inset 0px 2px 1px 0px #0d0d0d;
  box-shadow:inset 0px 2px 1px 0px #0d0d0d;
  background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #fffcff), color-stop(1, #000000));
  background:-moz-linear-gradient(center top, #fffcff 5%, #000000 100%);
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcff', endColorstr='#000000');
  background-color:#fffcff;
  -moz-border-radius:22px;
  -webkit-border-radius:22px;
  border-radius:22px;
  display:inline-block;
  color:#fcfcfc;
  font:bold 13px  trebuchet ms;
  text-decoration:none;
  text-shadow:1px 0px 0px #000000;
  min-width:90px;
  height:30px;
  cursor:pointer;
  border-style:none;
}
4

4 回答 4

2

为此最好使用 jQuery。

if ($.browser.msie  && parseInt($.browser.version, 10) == 9)
 $('.PopupBtn').css({'background-image':'url(../Images/new-btn.png)','height':'28px','width':'99px'});

http://api.jquery.com/css/好处是你不仅要使用更少的代码,而且你可以调整一切,而不仅仅是css。这只是一个例子,其余的你必须填写:)

于 2013-02-07T06:30:18.153 回答
1

IE 的条件注释实际上是 html 注释,因此您不能将它们放在 css 文件中,它们必须在网页中。在您网页的某个地方,您将拥有

<!--[if lte IE 9]>
<style>
.PopupBtn
{
background-image: url("../Images/new-btn.png");
height: 28px;
width: 99px;
border-left-width: 0px;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
cursor: pointer;
}
</style>
<![endif]-->

甚至是注释之间的外部样式表链接

于 2013-02-07T06:30:08.823 回答
1

可能它会为你使用完整的:

<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"> </script>

在 head 标签中使用这个 java 脚本。

于 2014-01-08T06:58:07.173 回答
0

您需要将Internet Explorer 条件注释放在实际网页上,而不是放在 CSS 文件中。

避免添加内联 CSS 代码。相反,将它们放在自己的 CSS 文件中。分离 CSS 文件是个好主意。为 IE“hacks”制作一个,为您的常规样式表制作另一个。

因此,例如,将您的 IE 特定 CSS 放在 ie.css文件中:

即.css

.PopupBtn {
    background-image: url("../Images/new-btn.png");
    height: 28px;
    width: 99px;
    border-left-width: 0px;
    border-top-style: none;
    border-right-style: none;
    border-bottom-style: none;
    border-left-style: none;
    cursor: pointer;
}

将您的常规样式表放在style.css中。

<head>标签中放置:

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

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

笔记:

IE 仍然会应用它理解的常规样式表中的任何样式。因此,请确保在常规样式表之后应用条件注释和ie.css样式表。这样,它可以覆盖您不想要的任何样式。

确保您在 ie.css 中明确覆盖您不想要的任何样式,否则,它将“渗入”并显示在 IE 中

请参阅下面的我的 JSFiddle 链接。如果你在 IE 9 中运行它,你会看到一个带有红色单词“Hello”的绿色渐变。如果您在任何其他浏览器中运行它,您应该会看到带有白色“Hello”一词的黑色渐变。

http://jsfiddle.net/mKrRL/

于 2013-02-07T06:53:11.700 回答