2016-11-21 1 views
1

Я создаю редактор тем для WordPress и хотел бы использовать меньше для создания файла CSS.Условный, если в файле меньше

Я поместил строку в переменную так:

@banner-separation-style: 'thick_border'; 

Тогда я пытаюсь использовать, когда(), как это:

when (@banner-separation-style = 'thick_border') { 
    header { 
     ... some style 
    } 
    ... and some css selectors 
} 

Я также попытался комбинации, не цитируя переменная.

Как правильно создать нечто похожее на if-блоки с меньшим количеством?

+0

Ответ ниже, и не используйте кавычки, когда это не нужно - просто 'thick_border' (а не' 'thick_border'') будет достаточно (и' Thick-border' еще лучше подсчитывает стиль вашего именования переменных) , –

ответ

1

Охранники (when) могут использоваться только вместе с mixin или CSS selector. Мы не можем написать заявление when без использования одного из них. Таким образом, либо записать его с Mixin, как показано ниже:

@banner-separation-style: 'thick_border'; 
.border-styles() when (@banner-separation-style = 'thick_border') { 
    header { border: 2px solid red; } 
    nav { border: 2px solid green; } 
} 
.border-styles; 

или непосредственно с помощью селектора CSS, как показано ниже:

@banner-separation-style: 'thick_border'; 
header when (@banner-separation-style = 'thick_border') { 
    border: 2px solid red; 
} 
nav when (@banner-separation-style = 'thick_border') { 
    border: 2px solid green; 
} 

или по крайней мере с помощью безымянного селектор (&), как показано ниже:

@banner-separation-style: 'thick_border'; 
& when (@banner-separation-style = 'thick_border') { 
    header { border: 2px solid red; } 
    nav { border: 2px solid green; } 
} 

Первая версия (с mixin) является той, которую я предпочитаю, потому что (a) вам не нужно повторять условие несколько раз, как в версии селектора CSS, и (b) предоставление смеси в имени делает его более читаемым, чем использование неназванного селектора. Это просто мой выбор, и какой-то другой пользователь действительно может предпочесть последнее, потому что ему не нужен дополнительный оператор вызова mixin.

+0

Смесин работал. Я пробовал версию «header when ...», прежде чем спрашивать, но это не сработало. Попробовал это снова, и он все еще не работает. Также попробовал 'body when (...) { header {} } '. Мог бы быть моим менее компилятором. – frodeborli

+0

@frodeborli: опция CSS + guard была введена только в более поздней версии компилятора (v1.6, если я правильно помню), ваш последний компилятор (или) использует другой порт Less.js, например dotLess , LessPHP и т. Д.? Возможно, это причина. – Harry