1

我有一个简单div的 2px 厚边框和绝对定位,直到它的父元素悬停在它上面。由于 IE 的盒子模型,说的位置div在 IE 中有些偏离,但在任何其他浏览器中都没有。我不想为 IE 添加一个完全独立的样式表,我只想在浏览者使用 IE 时修改类本身。

那么如何只为 IE 修改添加特定的类呢?

4

4 回答 4

2

您需要使用一种叫做条件注释的东西。这些仅在 IE 中有效(其他浏览器会将它们视为注释),因此它们是仅针对 IE 的好方法。

示例- 如果您想在 IE6 中完成某些操作,请使用以下命令:

<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]--

要了解更多信息,请访问有关条件注释的官方 MSDN 来源

于 2012-11-13T12:49:43.390 回答
1

您可以在 html(或其他)文件中添加以下条件片段。之后,您可以在您的ie_stylesheet.css

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

我认为这里有足够的解释。

于 2012-11-13T12:52:58.047 回答
0

您可以通过在样式表的开头添加 CSS 重置来尝试避免使用 IE 样式表。请查看以下内容:http ://www.cssreset.com/scripts/html5-doctor-css-reset-stylesheet/

重置应该有助于使元素在所有浏览器中的行为都相同。

于 2012-11-13T12:54:43.317 回答
0

我发现条件注释的这种用法是一种非常优雅的方式,<html>可以使用可以在 CSS 和 JS 中使用的类来标记标签:

<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]-->

作为一个人为的例子,如果你想以 IE6 为目标使所有链接变为红色,你可以使用如下的特异性:

.lt-ie7 a {
  color: red;
}

不需要单独的样式表。

资料来源:条件样式表 vs CSS hacks?答:都没有!

于 2012-11-13T16:17:48.163 回答