Я использую less.js с регулярным использованием миксинов. Например. У меня есть базовый класс градиентный черный, как этот.
.gradientBlack {
background: #333333;
background: -moz-linear-gradient(top, #5a5a5a 0%, #333333 60%, #000000 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5a5a5a), color-stop(60%, #333333), color-stop(100%, #000000));
background: -webkit-linear-gradient(top, #5a5a5a 0%, #333333 60%, #000000 100%);
background: -o-linear-gradient(top, #5a5a5a 0%, #333333 60%, #000000 100%);
background: -ms-linear-gradient(top, #5a5a5a 0%, #333333 60%, #000000 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5a5a5a', endColorstr='#000000', GradientType=0 );
background: linear-gradient(top, #5a5a5a 0%, #333333 60%, #000000 100%);
}
Затем я повторно использую этот класс в нескольких определениях, например
h3 {
.gradientBlack;
...
}
.darkBox {
.gradientBlack;
...
}
Недостатком этого подхода является то, что он раздут CSS с избыточными определениями. Например. вычисленный CSS может выглядеть примерно так:
h3 {
background: #333333;
background: -moz-linear-gradient(top, #5a5a5a 0%, #333333 60%, #000000 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5a5a5a), color-stop(60%, #333333), color-stop(100%, #000000));
//... and maybe some more (redundant) definitions
}
.darkBox {
background: #333333;
background: -moz-linear-gradient(top, #5a5a5a 0%, #333333 60%, #000000 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5a5a5a), color-stop(60%, #333333), color-stop(100%, #000000));
//... and maybe some more (redundant) definitions
}
Для таких, как я, которые используют много градиентов, круглых углов и т. Д., Это быстро складывается.
Вопрос (отредактированный)
Я обнаружил, что известное имя для этой темы селекторное наследование (см. Sass ) и, как кажется, сейчас не реализовано. Использование и преимущества обсуждаются здесь . Вычисленный CSS этого синтаксиса может выглядеть следующим образом.
h3,
.darkBox,
.gradientBlack {
background: #333333;
background: -moz-linear-gradient(top, #5a5a5a 0%, #333333 60%, #000000 100%);
...
}
Тем не менее, я был бы признателен за любые предложения, когда беспокоиться, а когда нет, а также за любые другие намеки на то, как действовать, если наследование селектора не является вариантом.