Я использую less.js с некоторым регулярным использованием mixins. Например. У меня есть базовый класс "gradientBlack", как это.
.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
}
Для кого-то вроде меня, который использует много градиентов, roundCorners и т.д., это быстро складывается.
Вопрос (отредактированный)
Я узнал, что известное имя для этого раздела наследование селектора (см. Sass) и как похоже, сейчас это не реализовано. Использование и преимущества обсуждаются здесь здесь. Вычисленный css этого синтаксиса может выглядеть следующим образом.
h3,
.darkBox,
.gradientBlack {
background: #333333;
background: -moz-linear-gradient(top, #5a5a5a 0%, #333333 60%, #000000 100%);
...
}
Тем не менее, я был бы признателен за любые предложения, когда нужно беспокоиться и когда это не делать, - а также любые другие рекомендации по теме, как действовать, если наследование выбора не является вариантом.