侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

在lesscss mixin中连接任意数量的值

2023-03-28 星期二 / 0 评论 / 0 点赞 / 69 阅读 / 1995 字

标准lesscss mixin: .box-shadow(@val) { -moz-box-shadow: @val; box-shadow: @val;} 但是,在纯CSS中

... . . 标准lesscss mixin:

.box-shadow(@val) {    -moz-box-shadow: @val;    box-shadow: @val;}

但是,在纯CSS中我可以在一个元素上使用几个框阴影,例如

#myBox {    box-shadow: inset 0px 1px 0px white,0px 0px 5px #aaa;    -moz-box-shadow: inset 0px 1px 0px white,0px 0px 5px #aaa;}

为了ie.创建插入和发光效果.当然,我也想在这种情况下使用lesscss来修复供应商前缀诅咒,但是

.box-shadow() {    -moz-box-shadow: @arguments;    box-shadow: @arguments;}#myBox {    .box-shadow(inset 0px 1px 0px white,0px 0px 5px #aaa);}

将呈现

#myBox {    box-shadow: inset 0px 1px 0px white 0px 0px 5px #aaa;    -moz-box-shadow: inset 0px 1px 0px white 0px 0px 5px #aaa;}

(注意白色后丢失的逗号)!这在语法上是不正确的.有没有办法欺骗lesscss与多个参数连接,而不是?我认为这应该是一个或多或少的标准问题,但没有找到任何规范的解决方案……

.

解决方法

. 使用转义字符串

#myBox { .box-shadow(~"inset 0px 1px 0px white,0px 0px 5px #aaa"); }

或者一个javascript逃脱

减少1.2.0及以下:

.box-shadow() {    @shadow: ~`'@{arguments}'.replace(/[/[/]]/g,'')`;    -webkit-box-shadow: @shadow;       -moz-box-shadow: @shadow;            box-shadow: @shadow;}#myBox { .box-shadow(inset 0px 1px 0px white,0px 0px 5px #aaa); }

减去1.3.0及以上(需要和使用…可变参数说明符):

.box-shadow(...) {    @shadow: ~`'@{arguments}'.replace(/[/[/]]/g,'')`;    -webkit-box-shadow: @shadow;       -moz-box-shadow: @shadow;            box-shadow: @shadow;}

作者推荐的方式是一个中间变量:

#myBox {  @shadow: inset 0px 1px 0px white,0px 0px 5px #aaa;  .box-shadow(@shadow);}
. . .. ...

广告 广告

评论区