У меня есть макет на основе SCSS, в котором я хочу использовать пространственный модуль из OOCSS.
Модуль OOCSS — это чистый CSS — ptl
, например, означает padding-top: large
, где large — это определенное значение (по умолчанию 20px).
Я хотел бы улучшить его с помощью SCSS. До сих пор я мог заменить фиксированные значения переменными SCSS, поэтому я могу изменить значения в одном месте, если захочу (я не хочу):
$spacing-small: 5px;
$spacing-medium: 10px;
$spacing-large: 20px;
...
.pts,.pvs,.pas{padding-top:$spacing-small !important}
Теперь я хотел бы иметь возможность использовать ptn
, pvs
и т. д. в качестве примесей, поэтому я могу сделать это:
.client-name {
@include spacing-pvs; // this has the same padding properties as pvs
}
Я гибкий в синтаксисе, но это та функциональность, которая мне была бы интересна.
Единственный способ, который я могу придумать для этого, — вручную определить каждый миксин:
@mixin spacing-pvs {
padding-top: $spacing-small !important;
padding-bottom: $spacing-small !important;
}
.pvs { @include spacing-pvs; }
Но существует около 56 стилей/примесей. Делать каждый по отдельности, как это, было бы больно писать и поддерживать.
Есть ли лучший способ сделать это в SASS/SCSS?
!important
. Это в значительной степени пример того, почему OOCSS — это плохо. - person cimmanon   schedule 17.12.2012