2016-06-05 24 views
2

Aufgrund der Natur des BEM mit in das Projekt an dem ich arbeite, finde ich mich und andere die folgende in CSS-Dateien verwenden:Stenografie für Klassennamen mit regex gezielte

[class*="something"] { ... } 
[class*="__something-else"] { ... } 
[class*="--other-stuff"] { ... } 
[class*="more-things"] { ... } 
[class*="__even-more"] { ... } 

Gibt es eine empfehlenswerte Abhilfe um das obige zu verkürzen, um eine langweilige Wiederholung des Wortes class zu vermeiden, oder sollten wir bei dieser Methode bleiben?

+0

Können Sie ein Beispiel Kontext geben, in dem Sie bem Stilselektoren wie dies in Ihrem CSS passen musste? – Rudi

Antwort

1

Sie müssen den Präprozessor wie LESS oder SCSS/Sass verwenden.

Ich verwende SCSS, um Ihre Idee zu demonstrieren.

von @mixin und @content verwenden, können Sie eine Klasse-Selektor des Generatorfunktion erstellen:

@mixin contain($name) { 
    [class*=#{$name}] { 
    @content; 
    } 
} 

einen neuen Selektor enthalten erstellen:

@include contain(--big) { 
    font-weight: bold; 
    font-size: 50px; 
} 

https://jsfiddle.net/twxia/pLy3bz44/2/

Dies scheint nicht kürzer als nur Eingabe [class*=...], aber wenn Sie Sass verwenden, können Sie diegenerierenwie folgt aus:

+contain(--big) 
    font-weight: bold 
    font-size: 50px 

Ich denke, die Verwendung der automatischen Vervollständigung Plugin für Editor oder Sass wird sovle Ihr Problem: D