CSS-препроцессоры
Что такое препроцессоры?
-
Профессиональный инструмент.
-
Расширяет стандартные возможности языка.
-
Бывает не только для CSS: для HTML, для JavaScript.
LESS
SASS
CSS-препроцессоры
LESS
SASS
CSS-препроцессоры
Появился в 2009 году
Появился в 2006 году
Возможности CSS-препроцессоров
- Подключение файлов
- Переменные https://w3.org/TR/css-variables-1/
- Вложенные селекторы https://tabatkins.github.io/specs/css-nesting
- Математические операции функция calc()
- Управление цветом https://w3.org/TR/css-color-4/
Препроцессоры — это только инструмент
Если вы не умеете писать CSS-код, этот инструмент вам не поможет.
«Не надо пытаться программировать на CSS-препроцессорах!»
– Николай Громов
Сравним
Подключение файлов
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4162977/Screen_Shot_2017-09-26_at_16.58.17.png)
Подключение файлов
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4162993/Screen_Shot_2017-09-26_at_17.02.18.png)
Переменные
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163007/Screen_Shot_2017-09-26_at_17.01.55.png)
Переменные
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163015/Screen_Shot_2017-09-26_at_17.02.18.png)
Математические операции
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163034/Screen_Shot_2017-09-26_at_17.04.46.png)
Математические операции
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163036/Screen_Shot_2017-09-26_at_17.06.30.png)
Математические операции
16px + 2cm
(16px + 2cm) / 2
ceil((16px + 2cm) / 2)
floor((16px + 2cm) / 2)
round((16px + 2cm) / 2)
12px * 2
4em + 2
4em / 2
LESS: 91.59055118px
SASS: 91.59055px
LESS: 45.79527559px
SASS: 45.79528px
LESS: 46px
SASS: 46px
LESS: 45px
SASS: 45px
LESS: 46px
SASS: 46px
LESS: 24px
SASS: 24px
LESS: 6em
SASS: 6em
LESS: 2em
SASS: 4em / 2
Операции с цветом
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163060/Screen_Shot_2017-09-26_at_17.14.29.png)
Операции с цветом
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163063/Screen_Shot_2017-09-26_at_17.15.35.png)
Вложенные селекторы
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163073/Screen_Shot_2017-09-26_at_17.16.56.png)
Вложенные селекторы
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163078/Screen_Shot_2017-09-26_at_17.17.39.png)
Вложенные селекторы
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163088/Screen_Shot_2017-09-26_at_17.18.30.png)
Вложенные селекторы
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163090/Screen_Shot_2017-09-26_at_17.18.40.png)
Примеси
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163097/Screen_Shot_2017-09-26_at_17.21.12.png)
Примеси
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163104/Screen_Shot_2017-09-26_at_17.22.41.png)
Примеси со вложенностью
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163112/Screen_Shot_2017-09-26_at_17.23.33.png)
Примеси со вложенностью
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163114/Screen_Shot_2017-09-26_at_17.23.53.png)
Примеси с параметрами
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163128/Screen_Shot_2017-09-26_at_17.25.38.png)
Примеси с параметрами
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163133/Screen_Shot_2017-09-26_at_17.25.50.png)
Расширение
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163135/Screen_Shot_2017-09-26_at_17.26.07.png)
Расширение
![](https://s3.amazonaws.com/media-p.slid.es/uploads/607145/images/4163136/Screen_Shot_2017-09-26_at_17.26.22.png)
Примеси или расширение?
Файловая организация
|- fonts/
|- img/
|- less/
| |- blocks/
| | |- main-nav.less
| | |- news.less
| | |- page-footer.less
| | |- page-header.less
| | |- page-main.less
| | |- reviews.less
| |- global/
| | |- fonts.less
| | |- forms.less
| | |- layout.less
| | |- type.less
||- mixins.less
| |- style.less
| |- variables.less
Файл со всеми подключениями
// файл style.scss
@import "normalize.scss";
@import "variables.scss";
@import "mixins.scss";
@import "global/fonts.scss";
@import "blocks/page-header.scss";
@import "blocks/main-nav.scss";
@import "blocks/page-footer.scss";
Общие рекомендации
• Не создавайте большую вложенность.
• Стили для каждого блока в отдельном файле.
• Если дизайн готов и все цвета обозначены в стайлгайде, не нужно использовать цветовые функции для получения этих цветов.
• Не используйте расширение совсем.
• Не используйте сразу всё, пробуйте постепенно.
PRE
By Elizabeth Anatskaya
PRE
- 335