Давно не заходил на тостер, и вдруг наткнулся на вопрос о препроцессорах CSS. Стало интересно - что это за зверь.
Почитал несколько сайтов с описанием, что это и для чего. Посмотрел примеры. Но ничего не понял - а зачем? В чем смысл?
Суть моего вопроса:
1) Препроцессоры позволяют вводить переменные и миксины. Но ведь в CSS можно просто создать свойство
.hello {
color:red;
font-size: 11px;
}
и применять его ко всем элементам, где это нужно.
Какая разница - вписать в HTML
<a href="\" class="oneclass hello">hello</a>
или использовать в файле стиля переменную, которую так же придется добавлять к какому-то желаемому типу объектов? Мне совсем не понятно.
2) Валидность CSS.
Препроцессор компилирует ваш "красивый сахарный" синтаксис в валидный CSS.
А в чем сложность писать сразу валидный CSS? Тоже не совсем понятно.
3) Компилятор из препроцессорного языка в CSS.
Ну это же дополнительный инструмент! Зачем городить что-то еще, если все и так без всяких компиляций работает. Куча программ на компьютере - тоже лишнее.
4) Удобочитаемость кода, и простой поиск,
Ну, это я тоже не пойму. Любой нормальный редактор кода умеет по нажатию горячей клавиши приводить все отступы и т.д. в порядок. Код становится красивым и читабельным. Да и мне не понятно - что такого в CSS может быть не читаемым? Есть класс, а в фигурных скобках - свойства. Что тут нечитабельное может быть?
Поиск - тоже не вижу сложности. В браузере - F12, он выстроит красивое дерево элементов с их стилями, а у каждой строчки стиля указан файл и строка, в которой это свойство указано. Даже можно мышкой тыкнуть, и откроется окно с указанным файлом и искомой строкой.
5) Возможность инклюда (include) в препроцессорах.
Можно же в HTML файле инклюдить нужные CSS через link rel=... . Чем инклюд в препроцессорах удобней, чем эта стандартная возможность?
Создал пару файлов CSS, и суй их в HTML там где они тебе нужны. В админке - один, в гостевой книге - другой, в фотоальбоме - третий, или смешивать при необходимости. Ведь если называть классы элементов с умом, то никаких пересечений не получится, и все будет работать.
6) Вложенность свойств.
Не понимаю, каким образом такой код:
.block {
.sub_block {
color: red;
}
}
удобочитаемей, чем обычный CSS:
.block > .sub_block {color:red;}
7) На хабре видел в комментариях обсуждение, мол можно даже задавать в препроцессорах - какие браузеры поддерживать. Ахтунг! А зачем писать такие стили, которые не будут работать в старых браузерах?
P.S. Я не в коем случае не критикую новые направления, но я просто дано не изучал ничего нового, не использую фреймворки, так как и так все отлично работает.
Могу предположить, что такая ситуация у меня слоилась из-за того, что я в основном пишу маленькие проекты, а в больших проектах это действительно как-то помогает, но я не могу представить такую ситуацию.