0

我有以下 CSS LESS 混合:

.transparency (@amount, @tranc) {
    background: rgba(red(@amount), green(@amount), blue(@amount), @tranc);
}

我使用它的方式是:

.transparency (#FFFFFF, 0.2);

但我需要找到一些在mixin中包含-ms-filter的方法......但我不确定,我用在在线生成器上,它给了我这个结果:

-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#B224417C,endColorstr=#B224417C)"; /* IE8 */ 

我将如何包括这个?我的意思是 startColorstr 和 endColorstr ......

非常感谢任何帮助

4

1 回答 1

2

使用以下内容更新了功能:

.transparency (@colour, @alpha) {
    @alphaColour: hsla(hue(@colour), saturation(@colour), lightness(@colour), @alpha);
    @ieAlphaColour: argb(@alphaColour);

    background-color: @colour; // Fallback for older browsers
    background-color: @alphaColour; 

    // IE hacks
    zoom: 1; // hasLayout
    background-color: transparent\9;
    -ms-filter:  "progid:DXImageTransform.Microsoft.gradient(startColorstr=@{ieAlphaColour}, endColorstr=@{ieAlphaColour})"; // IE 8+
        filter: ~"progid:DXImageTransform.Microsoft.gradient(startColorstr=@{ieAlphaColour}, endColorstr=@{ieAlphaColour})"; // IE 6 & 7
}
于 2013-06-26T12:30:23.677 回答