在 Mixin 里面使用参数,可以让 Mixin 更灵活一些 ... 比如前面我们定义这个 alert mixin ,现在它里面的样式的属性的值是固定的,我们可以把这些属性定义成参数,然后在调用 mixin 的时候,你可以重新去指定这些属性的值。
在 Mixin 里面添加参数可以这样,在 Mixin 名字的后面,加上一组括号... 然后在括号里去添加要在 mixin 里面用到的参数 ... 这里我们先添加一个叫 text-color 的参数 ... 注意参数的前面要用 $ 符号开始,跟变量的命名方式是一样的 .. 不同的参数之间用一个逗号分隔开 ... 再添加一个 $backgroud ...
现在,在这个 mixin 里面,我们就可以使用这两个参数了 ... color 这个属性对应的值,我们用 $text-color 这个参数来表示 ... background 这个属性的值,用 $background 这个参数表示 ...
在这个 mixin 里面还用到了一个嵌套 ... 一个 a 标签选择器定义的样式。这个样式定义了使用这个 mixin 的元素里面的链接的颜色 ... 这个链接的颜色,我们可以根据 $text-color 这个参数的值自动去生成 ... 这里我们可以使用一个颜色函数 ... darken($text-color, 10%); 这里我用的是 darken 这个函数,它的功能就是,可以加深一种指定的颜色 ... 这里我们根据 $text-color 的值,让这个颜色加深 10% .. 再交给这个 color 属性 ...
在调用这个带参数的 mixin 的时候,我们需要去指定这个 mixin 里面的参数的值 ... 这里需要在 alert 的后面添加一组括号 ... 然后分别去指定参数的值,注意这个参数的值的顺序要跟定义这个 mixin 的时候使用的参数的顺序是一样的 ... 也就是,第一个值就是 $text-color 的值,第二个值是 $background ...
保存 ... 在右边这里,你会看到输出的结果 ... 在 .alert-warning 这里,color 属性的值就是我们在调用 alert 这个 mixin 的时候为 $text-color 这个参数指定的值 .. background 这个属性的值,就是调用 alert 的时候,为 $background 这个参数指定的值 ...
在下面,还有一个 .alert-warning a ... 在这里,这个 color 属性的值,是用一个 darken 函数,根据我们为 $text-color 这个参数的值自动生成的 .. 这个颜色,会比 $text-color 深 10% ..
我们可以再去添加一段样式,去调用这个 alert mixin ... 添加一个 .alert-info ... 在它里面,去调用 alert 这个 mixin,用一个 @include ... 同样,需要为这个 mixin 里面的定义的参数去指定对应的值 ..
这里我们也可以使用命名的方式去给参数设置值,这样这个参数的顺序就不重要了 ... 比如我们可以先为 $background 这个参数去设置一个值 ... 先用一个 $background ... 后面加上一个冒号 ... 然后是这个参数的值 ... #d9edf7 .. 用一个逗号分隔一下... 再设置一下 $text-color 这个参数的值 ... #31708f ...
保存 ... 在编译输出的结果里面,你会看到 .alert-info 这个样式 ... 它里面的 color 还有 background 属性的值 ,会根据我们在调用 alert 这个 mixin 的时候,为参数指定的值来生成。