Я не вижу преимущества создания миксина только для этой конкретной ситуации, вряд ли он будет полезен в нескольких случаях, но это только мое мнение.
Во всяком случае, я создал миксин, просто для удовольствия. Я думаю, что это может помочь вам справиться с этой конкретной ситуацией. Вот mixin , и я попытаюсь объяснить, как это работает:
@include button($selectors, $property, $values, $child: false) {
// Common properties that are included in all $selectors
}
Этот миксин принимает четыре параметра:
$selectors
: список селекторов, в вашем случае, .widget-a
и .widget-b
, они должны быть заключены в кавычки.
$property
: здесь вы должны ввести название объекта, в вашем случае width
$values
: Значения - это, как следует из названия, значения свойства для каждого селектора
$child
: здесь можно ввести имя ребенка, это необязательно.
В скобках {}
вы должны написать все свойства, которые вы хотите включить во все $parameters
Порядок каждого селектора должен соответствовать порядку их соответствующего значения
Итак, вот пример использования этого миксина для решения вашей проблемы. Это @include
:
@include (".widget-a" ".widget-b", width, 50px 100px, button) {
background: red;
}
И этот код, который возвращает:
.widget-a button, .widget-b button {
background: red; }
.widget-a button {
width: 50px; }
.widget-b button {
width: 100px; }
Это еще один способ добиться того же результата:
@include button(".widget-a .button" ".widget-b .button", width, 50px 100px) {
background: red;
}
Скачать миксин здесь