0

有谁知道SASS是否可以做到以下几点

我有一个ie mixin:

@mixin ie($version) {
    @if $version == 8 {
        html.lt-ie9 {
            @content;
        }
    }
    @if $version == 7 {
        html.lt-ie8 {
            @content;
        }
    }
}

用法:

@include ie(8){
    body {
        header {
            color: beige;
        }
    }
}

呈现:

html.lt-ie9 body header {
  color: beige;
}

现在,如果我能做这样的事情,那就太棒了:

header {
    > nav {
        color: beige;
        @include ie(8) {
            color: green;
        }
    }
}

这将呈现

header > nav {
    color: beige;
}

html.lt-ie9 header > nav {
    color: green;
}

这可能是一厢情愿的想法,但如果这样的事情是可能的,有没有人有任何想法

[编辑]

所以这是可能的!极好的。

我已将我的 mixin 更新为:

@mixin ie($version,$depth:false) {
    @if $depth == false {
        @if $version == 8 {
            html.lt-ie9 {
                @content;
            }
        }
        @if $version == 7 {
            html.lt-ie8 {
                @content;
            }
        }
    } @else {
        @if $version == 8 {
            html.lt-ie9 & {
                @content;
            }
        }
        @if $version == 7 {
            html.lt-ie8 & {
                @content;
            }
        }
    }
}

谢谢戴夫

4

1 回答 1

3

你不需要混合。只需使用:

header {
    > nav {
        color: beige;
        html.lt-ie9 & {
            color: green;
        }
   }
}
于 2013-04-18T11:40:35.000 回答