2013-04-15 15 views
19

Niektóre treści wiedzą, jak używać zagnieżdżonych mixin lub funkcji w SASS? Mam coś takiego:Zagnieżdżone miksy lub funkcje w SASS

@mixin A(){ 
    do something.... 
} 

@mixin B($argu){ 
    @include A(); 
} 
+2

Tak, robisz to dobrze. Możesz wywołać pierwszy mixin w drugim. [sprawdź to pióro] (http://codepen.io/crazyrohila/pen/vuljA). – crazyrohila

+0

o, dziękuję! Próbowałem z tym, ale nie działa, być może mój rubin się psuje. Spróbuję ponownie zainstalować. Dziękuję Ci. (codepen jest niesamowity !, jeszcze nie znany) – iLevi

+0

tak jest. :) – crazyrohila

Odpowiedz

3

Można Multi wstawek gniazdo, można również korzystać posiadacze miejsce wewnątrz wstawek ..

@mixin a { 
    color: red; 
} 
@mixin b { 
    @include a(); 
    padding: white; 
    font-size: 10px; 
} 
@mixin c{ 
    @include b; 
    padding:5; 
} 
div { 
    @include c(); 
} 

który daje się CSS

div { 
    color: red; 
    padding: white; 
    font-size: 10px; 
    padding: 5; 
} 
+1

Należy zauważyć, że kolejność mixin jest ważna, tzn. Jeśli przeniesiesz '@mixin a {...}' na końcu powyższego kodu, sass wygeneruje błąd kompilacji 'Undefined mixin 'a'' – dkjain

1

Jak wspomniano w innych odpowiedzi, ty może zawierać mixiny w innych mixinach. Ponadto możesz zmieniać swoje miksy.

Przykład

.menu { 
    user-select: none; 

    .theme-dark & { 
    color: #fff; 
    background-color: #333; 

    // Scoped mixin 
    // Can only be seen in current block and descendants, 
    // i.e., referencing it from outside current block 
    // will result in an error. 
    @mixin __item() { 
     height: 48px; 
    } 

    &__item { 
     @include __item(); 

     &_type_inverted { 
     @include __item(); 

     color: #333; 
     background-color: #fff; 
     } 
    } 
    } 
} 

wyświetli:

.menu { 
    user-select: none; 
} 

.theme-dark .menu { 
    color: #fff; 
    background-color: #333; 
} 

.theme-dark .menu__item { 
    height: 48px; 
} 

.theme-dark .menu__item_type_inverted { 
    height: 48px; 
    color: #333; 
    background-color: #fff; 
} 

scopingu wstawek oznacza, że ​​można mieć wiele wstawek nazwanych tak samo w różnych zakresach bez konfliktów wynikających.

Powiązane problemy