SASS

2016-04-14 56 views
1
'daki hedef özellik değerleri

HTML ve SASS'imde özellik modülleri kullanıyorum çünkü bu çok mantıklı. SUKDÖ'nün böyle bir şey olmazdıSASS

<article data-post="wrap feature"> 
    <h1 data-post="title feature">Feature title</h1> 
</article> 

<article data-post="wrap"> 
    <h1 data-post="title">Normal title</h1> 
</article> 

: Şu anda, böyle işaretlemeyi olabilir

[data-post] { 
    font-size: 15px; 
    color: black; } 

[data-post~="title"] { 
    font-size: 20px; } 

[data-post~="title"][data-post~="feature"] { 
    font-size: 30px; } 

Çalışıyor, ama yuva bunlara SUKDÖ'nün mümkün olmadığını merak ediyorum. Hepsi [data-post] için geçerlidir, bu yüzden içindeki özellikleri hedeflemek istiyorum.

[data-post] { 
    font-size: 15px; 
    color: black; 

    &[~="title"] { 
    font-size: 20px; } 

    &[~="title"]&[~="feature"] { 
    font-size: 30px; } 
} 

Bu koda daha KURU ve daha kolay, daha mantıklı olurdu/bakımını: I (besbelli çalışmaz) böyle bir şey hayal ediyorum.

+0

Alternatif kopya: http://stackoverflow.com/questions/30400162/how-can-i-add-additional-information-to-an-attribute-selector-via-nesting-in-sas – cimmanon

cevap

1

Bu bilgi yakındır. Her seferinde çocuk seçicilerindeki öznitelik adını yeniden belirtmeniz gerekir. Sınıflar ve kimlikler tacking on an ending to the parent class ile kurtulabilir, ancak aynı fikri özniteliğinize uzatırsanız ikinci seçiciniz [data-post][~="title"] olur.

Yani: oraya almalısınız

[data-post] { 
    font-size: 10px; 

    &[data-post~="title"] { 
    font-size: 50px; 
    color: blue; 
    } 
} 

. http://jsbin.com/kazusamore/edit?html,css,js,output

+0

Yeh, the Sorun burada çok DRY değil. Bu, başlık, açıklama, bağlantı, resim gibi birçok öğeye yönelik değerlere sahip olacak şekilde genişletildikten sonra, özellik defalarca belirtilir. – Coop

+0

Belki, ama Sass'ın çalışması budur. Nihayetinde, bu tür şeyler için sınıfları kullanmanın daha iyi olacağını düşünüyorum. Örnek, bu şekilde daha iyi yapılmış gibi görünüyor, ama ben iyi bir sebebiniz olduğunu varsayarak verilen cevabı verdim. Kolayca ve daha fazla DRY ile özniteliklerle yapmaya çalıştığınız gibi sınıfları yerleştirebilir ve genişletebilirsiniz. Bu sorunun, çoğunun gerçekten yapmanız gereken şey olup olmadığını sorduğun şeyi yapmak için daha karmaşık bir yönteme sahip olduğu belirtiliyor. – alexbea

+1

Yeh adil oyun. Derslere değişebilirim. Temel olarak, daha semantik işaretleme için öznitelik modülleriyle, sınıflar ve uzantıların BEM metodolojisini karıştırmayı düşünüyordum. – Coop