如何让IE.css覆盖standard.css的一部分?

时间:2016-09-22 21:30:00

标签: css deprecated

我正在尝试应用一些仅适用于旧IE浏览器的 CSS。

这样做的方法似乎是.html中的IF IE标记 所以我认为最优雅的方法是:

Standard.css
然后把不同的.css放在IE中 IE.css

然后引用IE.css,但前提是它是IE浏览器。 所以IE浏览器得到两个 CSS。

还有问题:

我想确保IE.css否决了 Standard.css 中相同的命名元素。

IE.css将具有相同的样式,只是不同的值。

更新

我试图避免使用两个替代的.css文件。我想要一个 standard.css ,然后是一个只有css规则的小IE.css,我想覆盖IE>

所以IE会渲染 standard.css +有一些规则覆盖 IE.css

示例:

如果Standard.css有10个规则,并且IE中只有2个需要不同,那么我希望: Standard.css有10条规则。 带有 2个规则的IE.css覆盖了Standard.css中的2个规则

这样,当我对Standard.css进行不涉及IE的更改(这是这些规则的99%)时,我也不必对IE.css进行更改。

2 个答案:

答案 0 :(得分:2)

如果您的目标旧IE版本可以考虑条件样式表: https://css-tricks.com/how-to-create-an-ie-only-stylesheet/

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

对于较新的IE,您可以考虑在HTML标记中添加特殊属性,并按照此处的建议将所有样式应用于此属性:https://css-tricks.com/ie-10-specific-styles/

html[data-useragent*='MSIE 10.0'] h1 {
  color: blue;
}

结合脚本

var doc = document.documentElement;
doc.setAttribute('data-useragent', navigator.userAgent);

答案 1 :(得分:1)

如果你想定位所有版本的IE,请将你的风格放在这里:

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

如果您想选择确切的IE版本,请使用以下代码:

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

此代码也应该在正常CSS的链接后面(然后它将覆盖您的默认样式)。