在Less中编写浏览器特定的hack(for

时间:2013-01-22 17:29:30

标签: css internet-explorer less

我想做这样的事情(来源 - CSS Tricks Article):

#veinte { color/*\**/: blue\9; }

在Less for IE7和IE8中,但它会出错。

以下作品:

#diecinueve { color: blue\9; } 

但是有些元素我不想在IE9中调用。例如我在IE9中有:before个元素,但因为IE8不支持它,我只想在IE8中给它一个padding

但是这个

#veinte { color/*\**/: blue\9; }

在Less中给出错误。我试过这个

#veinte { color~"/*\**/": blue\9; }

但这也不起作用。有没有人知道如何在Less中做到这一点?

3 个答案:

答案 0 :(得分:3)

您是否包含Modernizr或另一个将类直接添加到HTML元素的shiv脚本?

因此是这样的:

.selector {  
  ...rules...  

  .lte8 & {  
    ... < IE9 styles ...  
  }  
}  

可能适合您的需求。 (见:nesting selectorsusing the &

否则,既然你是hacky,为什么不在conditional comment中引用一个不同的.less编译输出表呢?

答案 1 :(得分:3)

Less v1.6.0及更高版本可以

Property name interpolation。因此,这个hack可以实现如下:

@hack: ~"/*\**/";
#veinte { 
    color@{hack}: blue\9; 
}

已编译的CSS:

#veinte {
    color/*\**/: blue\9;
}

答案 2 :(得分:1)

您可以尝试以下一种方法:background-position:~"-150px 0px\9" width:~"300px\9";

示例:

.test{
    width:~"300px\9";
}