我正在尝试应用一些仅适用于旧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进行更改。
答案 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的链接后面(然后它将覆盖您的默认样式)。