Статьи

Использование CSS препроцессоров с WordPress — LESS + CodeKit

В первой части этой серии я дал краткий обзор популярных CSS препроцессоров LESS и SASS. Я также поделился некоторыми из структур, в которых они используются.

Я планирую глубже погрузиться в LESS и поговорить о частях языка, которые я использую чаще всего. Я также планирую показать вам, как начать использовать его с CodeKit .

Давайте копаться в!


Я лично использую LESS для большинства проектов WordPress. Я трачу много времени на работу со Standard, и он использует Bootstrap в качестве своего предпочтительного фреймворка.

Поскольку Bootstrap использует LESS для компиляции своего CSS, я научился использовать его файлы .less для внесения изменений. Я знаю других веб-дизайнеров и разработчиков, которые предпочитают использовать Foundation . Поскольку Фонд использует SASS, они научились использовать его вместо этого.

Лично я начинаю работать над другим веб-проектом, который использует SASS, и мне было относительно легко разобраться с этим из-за моего опыта работы с LESS.


Переменные довольно понятны. Вы можете создать переменную где-нибудь в вашем файле .less и затем ссылаться на нее в других местах этого файла или других файлов. Я склонен использовать его для цветов, шрифтов, отступов и полей.

Вот пример:

01
02
03
04
05
06
07
08
09
10
// Variables
@red: #ff0000;
@green: #00ff00;
@blue: #0000ff;
 
// Styling
 
// Links
a { color: @blue;
a:visited { color: @blue;

Это затем скомпилируется в это:

1
2
a { color: #0000ff;
a:visited { color: #0000ff;

Если вы хотите изменить цвет обоих стилей ссылок, то вам просто нужно изменить переменную:

1
@blue

из

1
#0000ff

в

1
#0000a4

Вы изменяете в одном месте, перекомпилируете, и вы изменили все экземпляры этой переменной по всему файлу.

Еще один отличный способ использовать эти переменные — использовать более семантическое именование, например:

1
@primaryColor

и

1
@secondaryColor

Затем вы можете использовать эти переменные в своем коде. Когда ваш дизайнер придумывает эти цвета, вы можете просто изменить их один раз, перекомпилировать, и все готово!

Вложенность используется так же, как если бы вы вложили логику в блок if/else в вашем PHP или JavaScript: вы устанавливаете свой селектор более высокого уровня, например .post , а затем размещаете другие селекторы внутри него. Это избавит от необходимости многократно печатать .post перед вашими другими селекторами так:

1
2
3
4
5
6
7
// Post
.post {
    padding: 20px;
    .post-header {
        margin: 20px 0;
    }
}

Это затем скомпилируется в это:

1
2
.post { padding: 20px;
.post .post-header { margin: 20px 0;

Вы также можете использовать & для объединения селекторов. Примером может быть, если вы хотите настроить таргетинг на конкретные виджеты на боковой панели. Допустим, вы хотели по-разному стилизовать цвет фона виджетов «Последние сообщения» и «Последние комментарии». Вы можете сделать следующее в LESS:

1
2
3
4
5
6
7
8
9
.widget {
    padding: 20px;
    &.widget_recent_entries {
        background-color: white;
    }
    &.widget_recent_comments {
        background-color: black;
    }
}

Это будет компилировать в это:

1
2
3
.widget { padding: 20px;
.widget.widget_recent_entries { background-color: white;
.widget.widget_recent_comments { background-color: black;

Вы также можете использовать это для псевдо-классов, таких как :hover :active :hover :before и :after .

01
02
03
04
05
06
07
08
09
10
// Links
a {
    color: blue;
    &:hover {
        color: red;
    }
    &:visited {
        color: red;
    }
}

Это будет компилировать это:

1
2
3
a { color: blue;
a:hover { color: red;
a:visited { color: red;

Миксины — это в основном ряд стилевых атрибутов, которые вы хотите сгруппировать вместе. Отличным примером этого являются атрибуты, которые различаются в разных браузерах, например радиус границы.

Вместо того, чтобы запоминать каждый из них, вы можете вызвать свой миксин, и он предоставит вам каждый атрибут. Вот пример:

01
02
03
04
05
06
07
08
09
10
// Mixin
.border-radius {
    border-radius: 4px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
}
// Widget
.widget {
    .border-radius;
}

Это будет компилироваться в следующее:

1
2
3
4
5
.widget {
    border-radius: 4px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
}

Что если вы хотите использовать радиус границы несколько раз в вашем файле .less, но хотите разные суммы для каждого? Вот когда вы будете использовать параметрический миксин .

Это просто означает, что вы можете повторно использовать миксин и передать ему аргумент для использования. Вот пример:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
// Mixin
.border-radius (@radius: 4px) {
    border-radius: @radius;
    -moz-border-radius: @radius;
    -webkit-border-radius: @radius;
}
 
// Widget
.widget {
    .border-radius();
}
 
// Post
.post {
    .border-radius(8px);
}

Это будет компилировать это:

01
02
03
04
05
06
07
08
09
10
.widget {
    border-radius: 4px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
}
.post {
    border-radius: 8px;
    -moz-border-radius: 8px;
    -webkit-border-radius: 8px;
}

Вот пример использования переменных, вложенности и mixins одновременно:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Variables
@widget-recent-posts-border-radius: 4px;
@widget-recent-posts-background-color: white;
@widget-recent-posts-link-color: @blue;
 
@widget-recent-comments-border-radius: 8px;
@widget-recent-comments-background-color: black;
@widget-recent-comments-link-color: @red;
 
// Colors
@blue: #0000ff;
@red: #ff0000;
 
// Mixins
.border-radius (@radius: 4px) {
    border-radius: @radius;
    -moz-border-radius: @radius;
    -webkit-border-radius: @radius;
}
 
// Widgets
.widget {
    &.widget_recent_entries {
        background-color: @widget-recent-posts-background-color;
        .border-radius(@widget-recent-posts-border-radius);
        ul li a {
            color: @widget-recent-posts-link-color;
        }
    &.widget_recent_comments {
        background-color: @widget-recent-comments-background-color;
        .border-radius(@widget-recent-comments-border-radius);
        ul li a {
            color: @widget-recent-comments-link-color;
        }
    }
}

Что бы все скомпилировать в это:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
.widget.wiget_recent_entries {
    background-color: white;
    border-radius: 4px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
}
.widget.widget_recent_entries ul li a { color: #0000ff;
.widget.wiget_recent_comments {
    background-color: black;
    border-radius: 8px;
    -moz-border-radius: 8px;
    -webkit-border-radius: 8px;
}
.widget.widget_recent_entries ul li a { color: #ff0000;

Настроить ваш проект CodeKit очень просто. Вы можете просто перетащить папку в CodeKit или нажать кнопку «плюс» в левом нижнем углу, а затем выбрать папку в браузере файлов.

После этого CodeKit автоматически просканирует все файлы в этой папке, а затем сгруппирует их по следующим категориям:

  • Стили
  • Сценарии
  • страницы
  • Картинки
codekit-типы файлов

Итак, вы импортировали файлы вашего проекта. Далее мы собираемся установить путь вывода ваших файлов .less . Я бы посоветовал иметь папку css и меньшую папку внутри нее. Вы должны убедиться, что все ваши файлы в этой папке меньше, чтобы указывать на ваш файл style.less .

Вы захотите переключиться на представление стилей. Мы хотим, чтобы файл style.less был скомпилирован в корневую папку вашей темы как style.css . Для этого вам нужно будет щелкнуть правой кнопкой мыши файл style.less и выбрать « Установить выходной путь… ». Это вызовет браузер файлов.

Набор-выход-путь

Далее вы захотите нажать в поле «Выходное имя файла и расширение текста». Как только вы это сделаете, он может автоматически заполнить style.css для вас. Если этого не произойдет, вы захотите войти в style.css . Наконец, вы нажмете « Выбрать», чтобы сохранить.

Мы почти на месте! Далее нам нужно выбрать настройку компиляции. Вы увидите экран настроек компиляции, который откроется, когда вы нажмете на файл .less . У нас есть три доступных стиля вывода:

  • регулярное
  • Минимизированный
  • Сжатый (YUI)
codekit-выход стиль

Выберите один из вышеперечисленных и нажмите « Компилировать ». Вы должны получить уведомление о том, что ваш файл style.less скомпилирован.

Если весь ваш синтаксис правильный, ваша компиляция будет успешной. Если есть какие-либо ошибки, он перевернет вас в представление журнала и даст вам номер строки и объяснение ошибки.

Если все скомпилировано правильно, вы сможете открыть файл style.css и посмотреть результат. Когда вы редактируете свои файлы .less и сохраняете их, CodeKit автоматически перекомпилирует ваши файлы.

Примечание: убедитесь, что вы не вносите никаких изменений в файл style.css , потому что как только вы перекомпилируете ваши файлы .less , ваши изменения будут отменены.


Теперь мы прошли более глубокое погружение в LESS и разбили несколько популярных функций. Я объяснил несколько причин, по которым я лично решил использовать LESS в своих проектах WordPress и как использовать CodeKit для компиляции всех моих файлов.

В следующем посте я более подробно расскажу о том, как структурировать ваши файлы « .less » и соединить их все вместе.