Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
зачем сокращать код, когда он все-равно компилируясь раскрывается и развертывается до разобранного CSS-состояния?
@mixin placeholder {
&::-webkit-input-placeholder {
@content;
}
&:-moz-placeholder {
@content;
}
&::-moz-placeholder {
@content;
}
&:-ms-input-placeholder {
@content;
}
}
@mixin selection {
&::selection {
@content;
}
&::-moz-selection {
@content;
}
}
@mixin keyframe($name) {
@-webkit-keyframes #{$name} {
@content;
}
@-moz-keyframes #{$name} {
@content;
}
@-o-keyframes #{$name} {
@content;
}
@keyframes #{$name} {
@content;
}
}
.transition (@transitions, @transform) {
-webkit-transition: @transitions, -webkit-@transform;
-moz-transition: @transitions, -moz-@transform;
-o-transition: @transitions, -o-@transform;
transition: @transitions, @transform;
}
.transition-transform (@transform) {
-webkit-transition: -webkit-transform @transform;
-moz-transition: -moz-transform @transform;
-o-transition: -o-transform @transform;
transition: transform @transform;
}
.transition (@transitions, @transform) { -webkit-transition: @transitions, -webkit-@transform; -moz-transition: @transitions, -moz-@transform; -o-transition: @transitions, -o-@transform; transition: @transitions, @transform; }
transition(
box-shadow .3s ease,
background .3s ease .2s,
color .2s linear
);
.transition (@transitions) {
-webkit-transition: @transitions;
-moz-transition: @transitions;
-o-transition: @transitions;
transition: @transitions;
}
@transitions: height 0.3s linear, width 0.3s linear;
.transition(@transitions);
@function pi(){
@return 3.14;
}
// возведение в степень
@function pow($val, $num){
$result: $num;
@for $i from 1 through $num{
$result: $result * $num;
}
@return $result;
}
@function sin($deg){
$c: 9; // точность тейлора (кратно 2+1)
$result: $deg;
@for $i from 3 through $c{
$result: $result + pow($deg, $i) / факториал($i);
$i: $i+1;
}
@return $result;
}
@include sprite(2, 3); что бы подключить иконочку с позицией -32px на -48px, которая, допустим является обычным крестиком для кнопочек «закрыть». @media screen миксинов с шагом 160, что бы писать так:@include size-320 {
width: 480px; // ширина 480 для экрана, размером меньше или равного 320
}
@include size-480 {
width: 800px; // ширина 800 для 480 и меньше
}
@include size-960 {
width: 100%;
}
@mixin some($variable) {
color: #900;
any-style: $variable;
}
.some {
@include some(some-value);
}
@mixin some {
@content;
}
.some {
@include some {
// это передаётся в переменную @content
}
}
для разработки, для окончательно компиляции node все же нужен
Сегодня я поделюсь с вами своим опытом практического использования LESS.
…
Все, изложенное выше — просто мое мнение
Зачем сокращать код, когда он все-равно компилируясь раскрывается и развертывается до разобранного CSS-состояния?
чистенький и приятненький— и тут как раз мы говорим о «прослойке», но не о конечном результате!
И таких переменных может быть десяток, и они могут быть все в разных, отдельно подключаемых файлах
«Изменил в одном месте — поправил все кнопки!» — это для людей, которые не знают или забыли, что такое пакетный реплэйс!
.clearfix() {
*zoom: 1;
&:after {
display: block;
content: "";
line-height: 0;
clear: both;
}
}
зачем сокращать код, когда он все-равно компилируясь раскрывается и развертывается до разобранного CSS-состояния?Для удобства сопровождения?
Спросите, почему? Ответ: потому что это не полноценный язык и на выходе мы получаем все те же громоздкие конструкции CSS.
С моей точки зрения — очень спорно:
Во-первых, как уже ранее говорил, банально — чтобы изменить цвет уже существующего элемента нужно найти элемент, который нужно поправить, затем найти ту переменную, к которой уже присвоен сам цвет. И таких переменных может быть десяток, и они могут быть все в разных, отдельно подключаемых файлах, число которых, как вы понимаете, также может исчисляться десятками.
Во-вторых, аргумент сторонников о том, что удобно: «Изменил в одном месте — поправил все кнопки!» — это для людей, которые не знают или забыли, что такое пакетный реплэйс! Проще, быстрее и надежней найти сразу цвет #ccc и сделать «Replace All».
Еще есть мнимое «удобство» less в том, что легко поменять цвет путем сложения или вычитания прямо в коде, но это опять же в кавычках — поскольку если у человека под рукой графический редактор + если он давно занимается версткой и знает наизусть основные коды цветов — ему не нужно ничего прибавлять или убавлять — он сразу прописывает код.
Ни разу не видил человека, что бы взглянув на цвет он выдавал бы его точный хекс код
border-color: lighten(@base, 30%); 

а {
color: #66c2ff;
}
/* стиль: */
а {
color: @baseLighterLink;
}
/* один файл: */
@baseLighterLink: lighten(@baseLighterColor, 15%);
/* второй файл: */
@baseLighterColor: lighten(@baseColor, 5%);
/* третий: */
@baseColor: #0099FF;
@baseColor: @baseGreenColor;

Встречаются и подобные конструкции:
@baseColor: @baseGreenColor;
LESS? — мнение обывателя-верстальщика или дизайнера со стажем