当前位置: 首页 > 面试题库 >

更少的CSS:参数可变的Mixins

华星文
2023-03-14
问题内容

LESS允许参数混合,例如:

.transition(@property, @duration){
    transition:         @property @duration;
    -moz-transition:    @property @duration; /* Firefox 4 */
    -webkit-transition: @property @duration; /* Safari and Chrome */
    -o-transition:      @property @duration; /* Opera */
}

但是,这并不总是适用于过渡等属性。如果您尝试进行多个转换并尝试多次调用mixin,则最后一个mixin会覆盖所有先前定义的转换。这是因为用于定义多个转换的正确CSS3语法是:

... {
    transition: @property1 @duration1, @property2 @duration2, ...;
}

我可以想到的将多个转换定义为mixin的唯一方法是重载mixin:

.transition(@property, @duration){...}
.transition(@property, @duration, @prop2, @dur2){...}
.transition(@property, @duration, @prop2, @dur2, @prop3, @dur3){...}

是否有更健壮和简洁的方式来定义过渡混合,以接受可变数量的参数并构造适当的过渡CSS?

上下文: 有时我想在多个属性上过渡;例如,:hover可能会触发背景颜色,框阴影,文本颜色等的过渡…


问题答案:

在这里查看我的答案:混合属性中多个属性被视为单独的参数

摘要:使用此mixin来获取可变数量的参数:

.transition (@value1,@value2:X,...)
{
    @value: ~`"@{arguments}".replace(/[\[\]]|\,\sX/g, '')`;

    -webkit-transition: @value;
    -moz-transition: @value;
    -ms-transition: @value;
    -o-transition: @value;
    transition: @value;
}


 类似资料:
  • 问题内容: 长时间修改Python的任何人都被以下问题咬伤(或弄成碎片): Python新手希望此函数始终返回仅包含一个元素的列表[5]。结果是非常不同的,并且非常令人惊讶(对于新手而言): 我的一位经理曾经第一次遇到此功能,因此称其为“严重的设计缺陷”。我回答说,这种行为有一个基本的解释,如果您不了解内部原理,那确实是非常令人困惑和意外的。但是,我无法(对自己)回答以下问题:在函数定义而不是函数

  • 问题内容: 我正在使用LESS改进我的CSS,并试图将一个类嵌套在一个类中。层次结构相当复杂,但是由于某种原因,我的嵌套无法正常工作。我有这个: 我无法上班。它只是显示位。如果我这样做就可以了: 我想窝在虽然。有任何想法吗? 问题答案: 该角色具有的功能关键字,居然(事我不知道在写答案的时刻)。可以这样写: 并且将生成的CSS如下所示: 作为记录,@ grobitto是第一个发布此信息的人。 [原

  • 5.7. 可变参数 参数数量可变的函数称为为可变参数函数。典型的例子就是fmt.Printf和类似函数。Printf首先接收一个的必备参数,之后接收任意个数的后续参数。 在声明可变参数函数时,需要在参数列表的最后一个参数类型之前加上省略符号“...”,这表示该函数会接收任意数量的该类型参数。 gopl.io/ch5/sum func sum(vals...int) int { total

  • 问题内容: 如标题所示,我需要知道方法参数中是否存在与java对应的语法,例如 (代码由维基百科提供) 问题答案: 是的,您可以这样写:

  • 在具体实际开发过程中,有时方法中参数的个数是不确定的。为了解决这个问题,在 J2SE 5.0 版本中引入了可变参数的概念。 声明可变参数的语法格式如下: 其中,methodName 表示方法名称;paramList 表示方法的固定参数列表;paramType 表示可变参数的类型;… 是声明可变参数的标识;paramName 表示可变参数名称。 注意:可变参数必须定义在参数列表的最后。 例 1 每次

  • 我希望打印函数根据“值”的类型来做不同的事情。