第一种方法:
@mixin has-layout-block {
@if $legacy-support-for-ie {
// This makes ie6 get layout
display: inline-block;
// and this puts it back to block
& {
display: block; } } }
将编译为:
selector {
display: inline-block;
}
selector {
display: block;
}
第二种方法:
@mixin has-layout-zoom {
@if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
*zoom: 1; } }
将编译为:
selector {
*zoom: 1;
}
这两种方法都会成功地给出一个元素 hasLayout,所以纯粹从这个角度来看,你使用哪个并不重要。
第一种方法将通过验证,而第二种方法不会。但是,第二种方法中的验证失败是完全没有问题的;使用的黑客是“安全的”。
我到处使用第二种方法,因为它更短并且不涉及两个规则。
真的不值得担心(IE6/7 快要死了),但如果你想了解更多信息,请阅读this和this。