有人知道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;
            }
        }
    }
}


谢谢
戴夫

最佳答案

您不需要mixin。
只需使用:

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

关于css - 反向查找Sass Mixin,这可能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16080609/

10-13 08:13