我正在尝试通过浏览器特定的 CSS hack 来定位 IE 8 和 9,如此处所示。但是,我使用的是 SASS(特别是 WebCompiler Visual Studio 扩展),它会编译分号前的尾随空格。因此
.class{ display: none \ ;}
变成
.class { display: none \;}
并打破了黑客。有没有办法解决这个问题?
我正在尝试通过浏览器特定的 CSS hack 来定位 IE 8 和 9,如此处所示。但是,我使用的是 SASS(特别是 WebCompiler Visual Studio 扩展),它会编译分号前的尾随空格。因此
.class{ display: none \ ;}
变成
.class { display: none \;}
并打破了黑客。有没有办法解决这个问题?
如果你需要一个空格,你可以连接一个空字符串。
萨斯:
.class{ display: none \ +'';}
输出:
.class {
display: none \ ;
}
我建议在 html 中使用条件注释作为目标,如下所示:
<!--[if IE 8]> <html class="ie8"> <![endif]-->
<!--[if IE 9]> <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]> <html> <![endif]-->
在 CSS 中:
.class {display: block;}
.ie8 .class {display: none;}
.ie9 .class {display: none;}
但是如果你想保持一个更干净的 html 和更小的 css,你可以使用一些 javascript lib 来定位特定的浏览器,比如DetectJS将浏览器名称和版本作为类放在 html 标记中,为每个浏览器生成单独的样式表,而不是调用它们在你的脑海中:
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="ie8.css" />
<![endif]-->
<!--[if IE 9]>
<link rel="stylesheet" type="text/css" href="ie9.css" />
<![endif]-->
请记住,IE10+ 不接受条件注释。