较少的过渡混合

有人可以展示如何使用以下LESS mixin以线性方式转换.25s的以下属性吗?

border-top:6px solid#ff3300;

.transition-properties(...) {
@props: ~`"@{arguments}".replace(/[\[\]]/g,'')`;
-webkit-transition-property: @props;
-moz-transition-property: @props;
-o-transition-property: @props;
transition-property: @props;
}

解决方法

更新:LESS 1.4能力

使用LESS 1.4,不需要在逗号分隔参数的原始答案中使用的javascript.相反,在参数字符串末尾使用“虚拟”分号会导致逗号被视为列表分隔符,而不是参数分隔符,因此现在可以在输入多个转换时使用:

少1.4

mixin调用中的分号(.transition-properties(border-top .25s linear,color .5s linear;);)非常重要.如果省略,则将删除两个参数之间的逗号,这将以无效的css规则结束.

.transition-properties(...) {
  -webkit-transition: @arguments;
  -moz-transition: @arguments;
  -o-transition: @arguments;
  transition: @arguments;
}


.yourClass {
  border-top: 1px solid black;
  .transition-properties(border-top .25s linear,color .5s linear;); /* semicolon is necessary */
}                                                                |
                                                          NOTE THIS SEMICOLON

.yourClass:hover {
  border-top: 6px solid #ff3300;
}

CSS输出

请注意,逗号位于两个属性值之间:

.yourClass {
  border-top: 1px solid black;
  -webkit-transition: border-top 0.25s linear,color 0.5s linear;
  -moz-transition: border-top 0.25s linear,color 0.5s linear;
  -o-transition: border-top 0.25s linear,color 0.5s linear;
  transition: border-top 0.25s linear,color 0.5s linear;
}
.yourClass:hover {
  border-top: 6px solid #ff3300;
}

原始答案[Pre LESS 1.4]

显然,细节将取决于您的确切实施.但是,这一般说明了如何使用它:

.transition-properties(...) {
@props: ~`"@{arguments}".replace(/[\[\]]/g,'')`;
-webkit-transition: @props;
-moz-transition: @props;
-o-transition: @props;
transition: @props;
}


.yourClass {
  border-top: 1px solid black;
  .transition-properties(border-top .25s linear);
}

.yourClass:hover {
  border-top: 6px solid #ff3300;
}

CSS输出

.yourClass {
  border-top: 1px solid black;
  -webkit-transition: border-top 0.25s linear;
  -moz-transition: border-top 0.25s linear;
  -o-transition: border-top 0.25s linear;
  transition: border-top 0.25s linear;
}
.yourClass:hover {
  border-top: 6px solid #ff3300;
}

See Example Fiddle

说明

什么的

@props: ~`"@{arguments}".replace(/[\[\]]/g,'')`;

允许你做的是放入多个逗号分隔的转换,例如:

.transition-properties(border-top .25s linear,color 1s linear);

将编译以使它们用逗号分隔(例如只显示一行):

transition: border-top 0.25s linear,color 1s linear;

如果你刚刚使用直接的@arguments,你最终没有逗号分隔:

transition: border-top 0.25s linear color 1s linear;

哪个属性不正确.

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效