Използвайте променлива Sass за селектор - CSS-трикове

Anonim

Кажете, че трябва да използвате определен селектор на няколко места в кода си. Не е изключително често, разбира се, но се случват неща. Повтарящият се код обикновено е възможност за абстракция. Абстрахирането на стойности в Sass е лесно, но селекторите са малко по-сложни.

Един от начините да го направите е да създадете своя селектор като променлива. Ето пример, който е списък на селектори, разделени със запетая:

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

След това, за да използвате това, трябва да интерполирате променливата по следния начин:

#($selectors) ( background: red; )

Това работи и с влагането:

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

Префикс

Променливата може да бъде само част от селектор, като префикс.

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

Можете да използвате влагане, за да направите и префикс:

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

Селектори в карта

Може би вашата абстракция се поддава на ситуация двойка ключ / стойност. Това е карта в Сас.

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

Можете да ги използвате индивидуално като:

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

Или прекарайте през тях:

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

Примери

Вижте променливите Pen Sass за селектори от Chris Coyier (@chriscoyier) на CodePen.