2013-04-15 14 views
19

Bazı birimlerde, SASS'deki iç içe geçmiş karışımları veya işlevleri nasıl kullanabilirim? Böyle bir şey var:İç içe karıştırılmış karışımlar veya işlevler SASS

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

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

evet doğru yapıyorsunuz. İlk mixin ikincisini arayabilirsiniz. [bu kalemi kontrol et] (http://codepen.io/crazyrohila/pen/vuljA). – crazyrohila

+0

oh, teşekkürler! Bununla çalıştım ama çalışmıyor, belki de benim rubyum çöküyor. Yeniden yüklemeyi deneyeceğim. Teşekkür ederim. (codepen amazing !, henüz bilinmemektedir) – iLevi

+0

evet öyle. :) – crazyrohila

cevap

3

Sen çok yuva Katmalar, ayrıca .. Mixins içeride yer tutucuları kullanabilirsiniz diğer cevaplar belirtildiği gibi CSS

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

Karışımın sırasının önemli olduğu, yani yukarıdaki kodun altındaki bir {...} 'yi bir {...} 'i taşırsanız sass derleme hatası yaratır' Tanımlanmamış karışma' a'' – dkjain

1

verir

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

, sen diğer karışımlardaki karışımları içerebilir. Ayrıca, mikslerinizi de kapsayabilir.

Örnek

.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; 
     } 
    } 
    } 
} 

Will çıkışı:

.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; 
} 

Scoping Katmalar Eğer ortaya çıkan çakışma olmadan farklı kapsamları aynı adlı birden katmalar olabileceği anlamına gelir.