stylus之混合书写(Mixins)

混合书写(Mixins)

Mixins:Mixins是预处器中的函数。平时你在写样式时某段CSS样式要经常重复性的用到多个元素中,这样你就需要重复的写多次。在CSS预处器中,你可以为这些公用的CSS样式定义一个Mixin,然后在你CSS需要使用这些样式的地方直接调用你定义好的Mixin。这是一个非常有用的特性。Mixins是一个公认的选择器,还可以在Mixins中定义变量或者是默认参数

可以不使用任何符号,就是直接定义Mixins名,然后在定义参数和默认值之间用等号(=)来连接

这里写图片描述

转译后:
这里写图片描述

混入:

混入和函数定义方法一致,但是应用却大相径庭

例如下面有定义的border-radius(n)方法,其却作为一个mixin(如,作为状态调用,而非表达式)调用

当border-radius()选择器中调用时候,属性会被扩展并复制在选择器中
这里写图片描述

编译成
这里写图片描述

使用混入书写,你可以完全忽略括号,提供梦幻般私有属性的支持
这里写图片描述
注意这里我们在混合书写中的border-radius当作了属性用来给标签添加CSS样式,而并不是作为一个递归函数在调用

更进一步,我们可以利用arguments这个局部变量,传递可以包含多值的表达式
这里写图片描述
现在,我们可以像这样子传值:border-radius 1px 2px / 3px 4px!

另外一个很赞的应用是特定的私有前缀支持——例如IE浏览器的透明度
这里写图片描述

渲染为
这里写图片描述

父级引用:

混合书写可以利用父级引用字符&, 继承父业而不是自己筑巢

例如,我们要用stripe(even, odd)创建一个条纹表格。even和odd均提供了默认颜色值,每行也指定了background-color属性。我们可以在tr嵌套中使用&来引用tr,以提供even颜色
这里写图片描述

然后,利用混合书写,如下
这里写图片描述

另外,stripe()的定义无需父引用
这里写图片描述

混合书写中的混合书写:

自然,混合书写也可以再利用其它的混合书写进行组合,建立在它们自己的属性和选择器上

例如,下面我们创建内联comma-list()(通过inline-list())以及逗号分隔的无序列表
这里写图片描述

渲染
这里写图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值