sass: когда мне нужно @include для вызова миксина?

Согласно doc, мы используем @include для вызова миксина, но в моем случае использования У меня примерно так:

@import "components/color";

/*NavBar*/

#g-navigation{background:linear-gradient(to top,rgba(0,0,0,0), color(blue,base) 80%) !important}

Для миксина color (который определен в components/_color.scss) мне не нужно использовать @include, на самом деле, если я использую

#g-navigation{background:linear-gradient(to top,rgba(0,0,0,0), @include color(blue,base) 80%) !important}

миксин не будет выполняться, и компилятор просто оставит @include как есть в выходном файле. Так почему это? И когда именно мне нужно @include для миксина?


person shenkwen    schedule 09.08.2016    source источник


Ответы (2)


Для background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); вам нужны значения направления и цвета (имена, RGB и т. Д.), И вы даете миксин, который используется для вставки свойства + значение, а не только значения. Для этого вы можете использовать переменные SASS.

person mcabra    schedule 10.08.2016

@include - для миксинов; когда вы видите, что что-то используется без него, например color(...), это на самом деле функция. Миксины могут возвращать произвольный контент - обычно несколько объявлений правил - но функции просто возвращают значения. Таким образом, вы увидите функции, используемые после : в объявлении, и миксины, используемые как отдельные @include операторы.

person jack    schedule 23.08.2016