Bruk en Sass-variabel for en velger - CSS-triks

Anonim

Si at du må bruke en bestemt velger flere steder i koden din. Det er ikke veldig vanlig, for å være sikker, men ting skjer. Gjentatt kode er vanligvis en mulighet for abstraksjon. Å abstrahere verdier i Sass er enkelt, men velgerne er litt vanskeligere.

En måte å gjøre det på er å lage velgeren din som en variabel. Her er et eksempel som er en kommaseparert liste over velgere:

$selectors: " .module, body.alternate .module ";

For å bruke det, må du interpolere variabelen, slik:

#($selectors) ( background: red; )

Det fungerer også med hekking:

.nested ( #($selectors) ( background: red; ) )

Prefiksering

En variabel kan også bare være en del av en velger, som et prefiks.

$prefix: css-tricks-; .#($prefix)button ( padding: 0.5rem; )

Du kan bruke hekking til å gjøre prefiks også:

.#($prefix) ( &module ( padding: 1rem; ) &header ( font-size: 110%; ) &footer ( font-size: 90%; ) )

Velgere på et kart

Kanskje egner din abstraksjon seg til en nøkkel / verdipar-situasjon. Det er et kart i Sass.

$selectorMap: ( selectorsFoo: ".module", selectorsBar: ".moodule-2" );

Du kan bruke dem individuelt som:

#(map-get($selectorMap, selectorsFoo)) ( padding: 1rem; )

Eller løkke gjennom dem:

@each $selectorName, $actualSelector in $selectorMap ( #($actualSelector) ( padding: 1rem; ) )

Eksempler

Se Pen Sass Variables for Selectors av Chris Coyier (@chriscoyier) på CodePen.