Как пользоваться!по умолчанию в Sass mixin?
у меня есть этот Сасс миксин:
@mixin micro-clearfix
&:after,
&:before
content: ""
display: table
&:after
clear: both
* html &
height: 1% !default
*+html &
min-height: 1% !default
к сожалению, он не компилируется, если я удалить !default
в чем был бы смысл этого миксина.
сообщение об ошибке я получаю это:
Invalid CSS after "1% ": expected expression (e.g. 1px, bold), was "!default")
чего я хотел бы достичь, так это если height
(или min-height
) уже определен для селектора, тогда mixin должен использовать это значение, иначе он должен определить это свойство как 1%.
Я не хочу использовать zoom
так вот не является допустимым свойством, и мне нравится держать мой CSS в чистоте.
Я использую !default
неправильный путь?
у меня есть компас 0.12.1 и SASS 3.1.10.
2 ответов
!default
предназначен для использования только при объявлении переменных:http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#variable_defaults_
то, что вы пытаетесь сделать, должно быть сделано с в CSS !important
декларация, который должен использоваться в правиле вне mixin (тот, который вы хотите превалировать). Во всяком случае, используя !important
обычно это не очень хорошая практика. Возможно, вы могли бы положиться на каскад или специфику.
вот как я это сделал, наконец:
@mixin micro-clearfix
$minHeight: 1% !default
&:after,
&:before
content: ""
display: table
&:after
clear: both
* html &
height: $minHeight
*+html &
min-height: $minHeight