1
<!--[if !IE]>
    <style type="text/css" media="screen">
        .title {
            color: rgba(0, 0, 0, 0);
            display: block;
            font-family: sans-serif;
            font-size: 50px;
            margin-left: 0px;
            margin-right: 5px;
            text-align: right;
            text-shadow: rgba(255, 255, 255, 0.247059) 2px 2px 2px, #888 0px 0px 0px;
        }
    </style>
<![endif]-->

头标签中的这段代码永远不起作用……为什么?我一直在互联网上搜索很多,每个人都说它有效......但实际上,在我的网页中没有。我已经使用了很多次并且它有效......但是我应该做错了什么......有人可以帮助我吗?提前致谢!

4

4 回答 4

6

正如在这个 SO 答案中发布的(我在评论中链接到):

IE 以外的浏览器将条件语句视为注释,因为它们包含在注释标记中。

<!--[if IE]>
Non-IE browsers ignore this
<![endif]-->

但是,当您定位非 IE 浏览器时,您必须使用 2 条注释,一条在代码之前,一条在代码之后。IE 会忽略它们之间的代码,而其他浏览器会将其视为普通代码。因此,针对非 IE 浏览器的语法是:

<!--[if !IE]-->
IE ignores this
<!--[endif]-->

你有这个:

<!--[if !IE]>
some stuff
<![endif]-->

非 IE 浏览器会这样看:

(什么都没有,因为它只是对非 IE 浏览器的评论)。

你需要这个:

<!--[if !IE]-->
some stuff
<!--[endif]-->

这样开始和结束标记都是对非 IE 浏览器的完全包含的注释,并呈现样式。

于 2013-07-14T20:09:35.367 回答
1

Mystere Man 的意思是,这些条件注释在 Internet Explorer 10 之前的 Internet Explorer 版本中受支持。既然您说“如果不是Internet Explorer,则应用这些样式”,您在逻辑上是不可能的。

我会亲自写这些如下-

  <style type="text/css" media="screen">
        .title {
            color: #000000;
            color: rgba(0, 0, 0, 0);
            display: block;
            font-family: sans-serif;
            font-size: 50px;
            margin-left: 0px;
            margin-right: 5px;
            text-align: right;
            text-shadow: rgba(255, 255, 255, 0.247059) 2px 2px 2px, #888 0px 0px 0px;
        }
  </style>

您会注意到标题类的额外“颜色”属性 - 这将在支持 RGBA 的浏览器中被覆盖(它将使用该值),但对于那些不支持它的浏览器将是一个备用值。这样,所有不支持 RGBA 的浏览器(例如 Firefox 2 及更低版本)也将具有可用的备用颜色。由于 Internet Explorer 8 及以下版本也不支持此属性,因此我没有费心为 text-shadow 提供后备 - 您的用户可以在没有它的情况下生存。

提供一个浏览器不理解的标准 CSS 属性并没有什么坏处,它只会被该浏览器忽略,并且只在能够理解它的浏览器中使用。查看更多关于 CSS 后备属性的信息。

如果您必须使用条件注释来解决这个问题,您可以查看那些您知道不支持 RGBa 的 Internet Explorer 版本(不要惩罚浏览器支持该属性的 Internet Explorer 9-11 的用户)。

<!--[if lte IE 8]>
<style type="text/css" media="screen">
        .title {
            color: #000000;
        }
</style>
<![endif]-->

当后备属性是更好的解决方案时,不要这样做,例如在这种情况下。

于 2013-07-14T04:28:45.130 回答
0

我会回答自己,因为我发现了问题,这与 IE 选择器标签本身和 rgba 属性都没有任何关系(正如有人之前所说:IE 10 支持最后一个),但应用了 alpha 渐变。出于某种原因,alpha 值在 IE 中渲染得不是很好,它导致了完全不同的风格。更改字体颜色中的 0(alpha 值)并稍微使用这些颜色值可能会在 IE 和其他浏览器中获得非常相似的结果。所以,非常感谢所有试图帮助我的人。我希望这可以帮助另一个人。:)

于 2013-07-14T22:09:30.813 回答
-1

你错过了[endif]

<!--[if !IE]>
    <style type="text/css" media="screen">
        .title {
            color: rgba(0, 0, 0, 0);
            display: block;
            font-family: sans-serif;
            font-size: 50px;
            margin-left: 0px;
            margin-right: 5px;
            text-align: right;
            text-shadow: rgba(255, 255, 255, 0.247059) 2px 2px 2px, #888 0px 0px 0px;
        }
    </style>
<!--[endif]-->

注意:这将在非 IE 浏览器上应用样式。如果您想在 IE 浏览器上使用它,请将其更改!IEIE

于 2013-07-14T03:05:21.627 回答