Google Chrome 选择 IE9 特定的媒体查询
Google Chrome picking up IE9 specific media queries
我正在尝试将某些样式单独应用于 IE9
浏览器以使其正常工作。我参考了几篇文章(Jeff Clayton, ryadel) and ,他们建议我这样做:
@media screen and (min-width:0[=12=]) and (min-resolution: .001dpcm) {
.ie9only { /* some styles */ }
}
这似乎在 IE
浏览器中工作正常,但样式也被 Chrome
浏览器采用。不确定是错误还是预期的方式。谁能帮我单独选择 IE9 和媒体查询,在此先感谢。
如链接问题中所述,媒体查询是媒体查询,而不是浏览器查询,因此你根本不应该尝试这个。因为您要搜索的是 复杂的技巧。它们很难测试并且会使您的项目难以维护。
除了我真的为你仍然必须支持 IE9 感到难过之外,我会推荐以下解决方案之一:
1) 使用条件
<!--[if lte IE 9]>
<link rel="stylesheet" type="text/css" href="ie-only.css">
<![endif]-->
这可能是最好的方法。 Microsoft 知道 IE 不好,这就是他们引入它们的原因。一个重要的好处:所有其他浏览器都不必下载低劣的 IE9 CSS.
2) 在 HTML-body 上使用 class(使用 JavaScript)
var browser = {
isIe: function () {
return navigator.appVersion.indexOf("MSIE") != -1;
},
navigator: navigator.appVersion,
getVersion: function() {
var version = 999; // we assume a sane browser
if (navigator.appVersion.indexOf("MSIE") != -1)
// bah, IE again, lets downgrade version number
version = parseFloat(navigator.appVersion.split("MSIE")[1]);
return version;
}
};
if (browser.isIe() && browser.getVersion() == 9) {
document.body.className += ' ' + 'ie9';
}
在您的 CSS 中,您只需执行以下操作:
.ie9 #my-elem-to-style {
}
CSS 特异性的简单规则将解决您的问题。
3) 如果适用,请使用库(例如 Modernizr)
我正在尝试将某些样式单独应用于 IE9
浏览器以使其正常工作。我参考了几篇文章(Jeff Clayton, ryadel) and
@media screen and (min-width:0[=12=]) and (min-resolution: .001dpcm) {
.ie9only { /* some styles */ }
}
这似乎在 IE
浏览器中工作正常,但样式也被 Chrome
浏览器采用。不确定是错误还是预期的方式。谁能帮我单独选择 IE9 和媒体查询,在此先感谢。
如链接问题中所述,媒体查询是媒体查询,而不是浏览器查询,因此你根本不应该尝试这个。因为您要搜索的是 复杂的技巧。它们很难测试并且会使您的项目难以维护。
除了我真的为你仍然必须支持 IE9 感到难过之外,我会推荐以下解决方案之一:
1) 使用条件
<!--[if lte IE 9]>
<link rel="stylesheet" type="text/css" href="ie-only.css">
<![endif]-->
这可能是最好的方法。 Microsoft 知道 IE 不好,这就是他们引入它们的原因。一个重要的好处:所有其他浏览器都不必下载低劣的 IE9 CSS.
2) 在 HTML-body 上使用 class(使用 JavaScript)
var browser = {
isIe: function () {
return navigator.appVersion.indexOf("MSIE") != -1;
},
navigator: navigator.appVersion,
getVersion: function() {
var version = 999; // we assume a sane browser
if (navigator.appVersion.indexOf("MSIE") != -1)
// bah, IE again, lets downgrade version number
version = parseFloat(navigator.appVersion.split("MSIE")[1]);
return version;
}
};
if (browser.isIe() && browser.getVersion() == 9) {
document.body.className += ' ' + 'ie9';
}
在您的 CSS 中,您只需执行以下操作:
.ie9 #my-elem-to-style {
}
CSS 特异性的简单规则将解决您的问题。
3) 如果适用,请使用库(例如 Modernizr)