美文网首页
Less 09 守卫(Guards)

Less 09 守卫(Guards)

作者: Sommouns | 来源:发表于2019-10-04 12:39 被阅读0次

目录:

Less 01 准备工作
Less 02 变量(Variable)
Less 03 扩展(Extend)
Less 04 混入(Mixins)
Less 05 参数混入(Parametric Mixins)
Less 06 方法混入 (Mixins as Functions)
Less 07 CssRules 直接混入(Passing Rulesets to Mixins)
Less 08 导入(Import)
Less 09 守卫(Guards)
Less 10 其他操作(完结)

Mixin Guards

mixin可以像其他编程语言那样,使用判断,比如这样

.mixin (@a) when (lightness(@a) >= 50%) {
  background-color: black;
}
.mixin (@a) when (lightness(@a) < 50%) {
  background-color: white;
}
.mixin (@a) {
  color: @a;
}

运行

.class1 { .mixin(#ddd) }
.class2 { .mixin(#555) }

输出

.class1 {
  background-color: black;
  color: #ddd;
}
.class2 {
  background-color: white;
  color: #555;
}

操作符

>,>=,=,=<,<,true是唯一的真值,下面是等价的

.truth (@a) when (@a) { ... }
.truth (@a) when (@a = true) { ... }

.class {
  .truth(40); // Will not match any of the above definitions.
}

当然还能比较arguments

@media: mobile;

.mixin (@a) when (@media = mobile) { ... }
.mixin (@a) when (@media = desktop) { ... }

.max (@a; @b) when (@a > @b) { width: @a }
.max (@a; @b) when (@a < @b) { width: @b }

守卫逻辑运算符

and

.mixin (@a) when (isnumber(@a)) and (@a > 0) { ... }

,

.mixin (@a) when (@a > 10), (@a < -10) { ... }

not

.mixin (@b) when not (@b > 0) { ... }

类型检测

如果你想根据传入参数的类型匹配mixin,可以使用is开头的函数

基础类型检测

  • iscolor
  • isnumber
  • isstring
  • iskeyword
  • isurl

单位检测

  • ispixel
  • ispercentage
  • isem
  • isunit

条件判断

default类似我们js中if else中的else

.mixin (@a) when (@a > 0) { ...  }
.mixin (@a) when (default()) { ... } // matches only if first mixin does not, i.e. when @a <= 0

Css Guard

在v1.5.0之后
可以这样写

button when (@my-option = true) {
  color: white;
}

如果要绑定多个guards

& when (@my-option = true) {
  button {
    color: white;
  }
  a {
    color: blue;
  }
}

最后强调一个单位不同问题,计算的话,他不管单位的,全当数字来计算,然后就是返回的单位以第一个参数为准

相关文章

  • Less 09 守卫(Guards)

    目录: Less 01 准备工作Less 02 变量(Variable)Less 03 扩展(Extend)Les...

  • 2017-3-24 less

    CSS Guards(CSS保护) LESS: Import Directives (导入准则) LESS: CS...

  • Less 混合守卫

    本节我们学习混合守卫(Mixins Guards),当我们想在表达式上匹配简单值或参数数量时,Guards 将会很...

  • Less 混合守卫

    本节我们学习混合守卫(Mixins Guards),当我们想在表达式上匹配简单值或参数数量时,Guards 将会很...

  • Less CSS 守卫

    本节我们学习 CSS守卫(CSS Guards),在上一节中,我们学习了混合守卫,如何对 Mixins 进行条件判...

  • Less CSS 守卫

    本节我们学习 CSS守卫(CSS Guards),在上一节中,我们学习了混合守卫,如何对 Mixins 进行条件判...

  • 【vue-router】高阶应用

    1.导航守卫 (1)定义导航守卫(navigation-guards)这个名字,听起来怪怪的,但既然官方文档是这样...

  • Vue的路由守卫

    1.什么是路由守卫? 我们先来看看官网文档的描述: 【Navigation Guards 】As the name...

  • Less语言特性 - Mixin Guards

    如果你想在表达式上匹配简单的值或参数数量,那么你可以使用Guards。 它与mixin声明相关联,并包括附加到mi...

  • less学习笔记6-语言特性(Guards)

    本来说好上周末要出的这一篇结果拖到了现在,公司上需要做一个h5的游戏,最近这一周都在做这个游戏的单机demo,完全...

网友评论

      本文标题:Less 09 守卫(Guards)

      本文链接:https://www.haomeiwen.com/subject/eptspctx.html