使用更少的值将所有参数值加倍

贝贝纳尔

我正在写很多代码,例如

.something {
    left: 10px;
    top: 20px;
    @media @tablet {
        left: 20px;
        top: 40px;
    }
}

是否可以将其重构为某些mixin?

.something {
    .somemixin({
        left: 10px;
        top: 20px;
    });
}
哈利

您可以通过将规则集传递给mixin来实现此目的,并且让mixin也将amultiplier作为一个参数。

更少:(适用于支持将规则集传递到mixins的1.7.0及更高版本)

/* wrapper mixin called with the common rules as a ruleset and a multiplier */
.somemixin(@rules, @multiplier: 1){
    @rules();

    @media tablet{
        .common_props(@rules,2);
    }  
}

/* sub mixin to create rules for each media */
.common_props(@rules,@multiplier){ 
    @rules();
}

.something {
    /* calling wrapper mixin with the ruleset */
    .somemixin({
        left: 10px * @multiplier;
        top: 20px * @multiplier;
        .some-other-class{
            bottom: 1px * @multiplier;
            font-size: 12px * @multiplier;
            padding: 0px 1px * @multiplier;
        }
    });
}

CodePen演示


小于:(对于低于1.7.0且不支持规则集传递的版本)

您可以通过创建具有所有常用属性的mixin并使该mixin也将amultiplier作为一个参数来实现此目的

.common_props(@multiplier: 1){
    left: 10px * @multiplier;
    top: 20px * @multiplier;
    .some-other-class{
        bottom: 5px * @multiplier;
        font-size: 12px * @multiplier;
        padding: 0px 1px * @multiplier;
    }
}
.something {
    .common_props();

    @media tablet{
        .common_props(2);
    }
}

CodePen演示

通过将适当的乘数值设置为输入参数来调用mixin,将根据需要生成输出。

由于我们为分配了默认值,multiplier因为1不需要为基本设置传递参数。

编译的CSS:

.something {
    left: 10px;
    top: 20px;
}
.something .some-other-class {
    bottom: 5px;
    font-size: 12px;
    padding: 0px 1px;
}
@media tablet {
    .something {
        left: 20px;
        top: 40px;
    }
    .something .some-other-class {
        bottom: 10px;
        font-size: 24px;
        padding: 0px 2px;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用MATLAB将参数加倍,直到达到特定值

来自分类Dev

使用更少的循环数将所有字符和所有长度组合在一起?

来自分类Dev

如何轻松地将多维数组中的所有值强制转换为数值

来自分类Dev

Javascript将特定类的所有div中所有图像的大小加倍

来自分类Dev

砍地图的所有键(使用更少的代码)

来自分类Dev

如何使用更少的内容搜索所有文件

来自分类Dev

没有反序列化的相应值时,如何使用构造函数的默认参数值?

来自分类Dev

使用正则表达式将所有JSON整数值括在双引号“”中

来自分类Dev

使用python将图像加倍

来自分类Dev

当它们在r中加倍时,给出所有最小值

来自分类Dev

如何将函数映射到所有参数值上,作为列表?但在函数定义中有明确的参数名称

来自分类Dev

所有字符和所有长度的组合,使用的循环数更少?

来自分类Dev

如何将数组中的所有其他元素加倍?

来自分类Dev

将R中的所有列从系数更改为数值

来自分类Dev

将R中的所有列从系数更改为数值

来自分类Dev

PDO插入将值1写入具有绑定参数的所有字段

来自分类Dev

使用JavaScript将组合框中的所有值合计

来自分类Dev

如何使用SUM()将SQL中的所有值相乘

来自分类Dev

使用sum()将所有值与时间类型相加

来自分类Dev

将数组中的每个值加倍

来自分类Dev

Excel UDF 将评估的 SUB 值加倍

来自分类Dev

BigQuery LEFT JOIN 将值加倍

来自分类Dev

使用C#将多个参数值插入sqlite表

来自分类Dev

使用正则表达式将所有JSON整数值都用双引号“”括起来

来自分类Dev

使用数据表将一个函数应用于具有参数值向量的多列

来自分类Dev

如何使用参数将整数值提取到带有Python连接器的MySQL数据库中

来自分类Dev

Spring JDBC模板未绑定所有参数(获取参数值)

来自分类Dev

使用pytest参数化键和值列表的字典映射中的所有键/值对吗?

来自分类Dev

列出所有或指定值-SSRS参数

Related 相关文章

  1. 1

    使用MATLAB将参数加倍,直到达到特定值

  2. 2

    使用更少的循环数将所有字符和所有长度组合在一起?

  3. 3

    如何轻松地将多维数组中的所有值强制转换为数值

  4. 4

    Javascript将特定类的所有div中所有图像的大小加倍

  5. 5

    砍地图的所有键(使用更少的代码)

  6. 6

    如何使用更少的内容搜索所有文件

  7. 7

    没有反序列化的相应值时,如何使用构造函数的默认参数值?

  8. 8

    使用正则表达式将所有JSON整数值括在双引号“”中

  9. 9

    使用python将图像加倍

  10. 10

    当它们在r中加倍时,给出所有最小值

  11. 11

    如何将函数映射到所有参数值上,作为列表?但在函数定义中有明确的参数名称

  12. 12

    所有字符和所有长度的组合,使用的循环数更少?

  13. 13

    如何将数组中的所有其他元素加倍?

  14. 14

    将R中的所有列从系数更改为数值

  15. 15

    将R中的所有列从系数更改为数值

  16. 16

    PDO插入将值1写入具有绑定参数的所有字段

  17. 17

    使用JavaScript将组合框中的所有值合计

  18. 18

    如何使用SUM()将SQL中的所有值相乘

  19. 19

    使用sum()将所有值与时间类型相加

  20. 20

    将数组中的每个值加倍

  21. 21

    Excel UDF 将评估的 SUB 值加倍

  22. 22

    BigQuery LEFT JOIN 将值加倍

  23. 23

    使用C#将多个参数值插入sqlite表

  24. 24

    使用正则表达式将所有JSON整数值都用双引号“”括起来

  25. 25

    使用数据表将一个函数应用于具有参数值向量的多列

  26. 26

    如何使用参数将整数值提取到带有Python连接器的MySQL数据库中

  27. 27

    Spring JDBC模板未绑定所有参数(获取参数值)

  28. 28

    使用pytest参数化键和值列表的字典映射中的所有键/值对吗?

  29. 29

    列出所有或指定值-SSRS参数

热门标签

归档