2016-04-26 10 views
0

Ich habe einen weniger Code wie:Mehr Vorrang/Spezifität in weniger CSS-Klasse

.block__element { 
    background: red; 
    &--modifier { 
    background: yellow; 
    } 
} 

Ich will mehr Spezifität .block__element - Modifikator wie:

.block__element.block__element--modifier { 
    background: yellow: 
} 

also, dass sie kann einige andere Stile überschreiben. Ich kann es erreichen:

.block__element { 
    background: red; 
    &--modifier.block__element { 
    background: yellow; 
    } 
} 

ich will, ist es eine einfache Möglichkeit wissen?

+0

Was mit Ihrem aktuellen Ansatz ist falsch? – Laurens

+0

[So] (http://less2css.org/#%7B%22less%22%3A%22.block__element%20%7B%5Cn%20%20%20%20background%3A%20red%3B%5Cn% 20% 20% 20% 20% 26% 26 - Modifikator% 20% 7B% 5Cn% 20% 20% 20% 20% 20% 20% 20% 20 Hintergrund% 3A% 20Gel% 3B% 5Cn% 20% 20% 20 % 20% 7D% 5Cn% 7D% 5Cn% 22% 7D) wahrscheinlich, obwohl ich ehrlich gesagt nicht wirklich das Problem verstehe (ist es nur über typisierte Zeichen Wirtschaft? Aber warum zwei Klassen? Sollte nicht nur '.block__element - Modifikator {background: yellow} 'ist genug? Klingt nach dem Verderben der Absicht von BEM). –

+0

@Laurens aktuellen Ansatz funktioniert. Und ich benutze es gerade. Ich habe mich nur gefragt. –

Antwort

0
.block__element { 
    background: red; 
    &&--modifier { 
     background: yellow; 
    } 
} 

link

1

Sie könnten es mit Hilfe der variablen Interpolation auf eine etwas ausgefallenere Weise erreichen, so dass Sie jedes Mal, wenn Sie die Spezifität einer Klasse/eines Modifizierers erhöhen müssen, diese verwenden können. Es erscheint zuerst komisch, aber wenn Sie sich daran gewöhnen, werden Sie es lieben und Ihr Code wird viel sauberer und leichter zu lesen sein.

Check the official documentation

.block__element { 
    @this: block__element; 
    background: red; 

    &[email protected]{this}--modifier-primary { 
     background: yellow; 
    } 

    &[email protected]{this}--modifier-secondary { 
     background: green; 
    } 

    &[email protected]{this}--modifier-tertiary { 
     background: green; 
    } 
} 
+0

Danke. Aber ich denke, die Lösung von sieben Phasen-Max ist sauberer –

Verwandte Themen