2013-04-19 19 views
12

Tamam,Ben SCSS ile böyle yapmak çalıştı,

.social-media { /* ... */ } 
.social-media .twitter { /* ... */ } 
.social-media .facebook { /* ... */ } 
ul.social-media { /* ... */ } 

Yani şu geleneksel CSS olduğunu varsayalım Sass ile sona ebeveyn seçici ekleme çalışmaz, çünkü ampersan sadece bir selektörün başında görünmelidir. Bir çözüm var mı?

+0

Sen şeyleri adlandırma ediyoruz üzerine yeniden düşünme dikkate almak gerekir. Niçin "sosyal medya" sınıfıyla bir öğeniz var ve o zaman aynı sınıf adıyla içindeki sıralanmamış bir liste var mı? – zakangelle

+0

@zakang bunu doğru anlamadın. Genel olarak .sosyal medya elemanları için tanımlanmış bazı stillerim var. Ve sonra, “.social-media” sınıfı ile UL öğelerine belirli bazı stilleri uygulamak istiyorum. Kodumda ima ettiğin gibi .sosyal medya ul.social-media gibi bir şey yok. –

+0

Benim hatam, çok fazla kod taraması ve yeterli okuma yok :) – zakangelle

cevap

23

Sass 3.2 ve üzeri

Yapabileceğiniz tek şey de tüm iç içe veya iç içe ters geçerli: .social-medya {

/* ... */ 

    .twitter { 
     /* ... */ 
    } 
    .facebook { 
     /* ... */ 
    } 
} 

ul.social-media { 
    /* ... */ 
} 

Sass 3.3 ve üstü

You interpolasyon ve @at-root yönergesini kullanarak bunu yapabilir:

Ebeveyninizin seçici birden seçicileri içeriyorsa

Ancak, bunun yerine selector-append kullanmanız gerekir:

.social-media, .doodads { 
    /* ... */ 

    // Here's the solution: 
    @at-root #{selector-append(ul, &)} { 
     /* ... */ 
    } 
} 

Çıktı:

.social-media, .doodads { 
    /* ... */ 
} 
ul.social-media, ul.doodads { 
    /* ... */ 
} 
+0

Bundan korktuğum şey ... İnanılmaz şekilde sarkan renkleri koyulaştırıp açabilirsin ve böyle bir şey yapamazsın. Cevabınız için teşekkürler! –

+0

'&' kullanımı basit bir dizge değiştirme olmaması ile ilgilidir. Ebeveyn seçmeniniz 'ul.foo' olsaydı, bu durumda ulul.foo ile bitebilirsiniz. – cimmanon

+0

hm ... Bu çözüm sassmeister üzerinde iyi çalışıyor, ama benim sassmeister olarak sass ile aynı benim yerel, bu bana bir hata verir :( –

İlgili konular