Utilizați o variabilă Sass pentru un selector - CSS-Tricks

Anonim

Spuneți că trebuie să utilizați un anumit selector în mai multe locuri din codul dvs. Desigur, nu este extrem de obișnuit, dar se întâmplă lucruri. Codul repetat este de obicei o oportunitate pentru abstractizare. Abstracția valorilor în Sass este ușoară, dar selectoarele sunt puțin mai complicate.

O modalitate de a face acest lucru este să vă creați selectorul ca variabilă. Iată un exemplu care este o listă de selectoare separate prin virgulă:

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

Apoi, pentru a utiliza acest lucru, trebuie să interpolați variabila, astfel:

#($selectors) ( background: red; )

Acest lucru funcționează și cu cuibărirea:

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

Prefixare

O variabilă poate fi, de asemenea, doar o parte a unui selector, ca un prefix.

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

Ați putea folosi cuibărirea pentru a face și prefixarea:

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

Selectoare într-o hartă

Poate că abstractizarea dvs. se pretează la o situație de pereche cheie / valoare. E o hartă în Sass.

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

Le puteți utiliza individual, cum ar fi:

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

Sau treceți prin ele:

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

Exemple

Vedeți Variabilele Pen Sass pentru selectoare de Chris Coyier (@chriscoyier) pe CodePen.