当前位置: 首页 > 知识库问答 >
问题:

Sass负变量值?

范彭亮
2023-03-14

我有两个scss选择器,使用相同数量的正片和负片,如:

padding: 0 15px 15px;
margin: 0 -15px 20px -15px;

我更喜欢使用一个变量为所有的15px金额,但这不工作:

$pad: 15px;
padding: 0 $pad $pad;
margin: 0 -$pad 20px -$pad;

保证金金额转换为正数。我错过什么了吗?

共有3个答案

段弘和
2023-03-14

在考虑了前面的两个答案后,我加上了我的两个便士,但随后读到这篇文章(强调我的):

尤其应该避免使用像#{$number}px这样的插值。这实际上并没有创建一个数字!它创建一个看起来像数字的无引号字符串,但不能用于任何数字操作或函数。尝试将您的数学单位清理干净,以便$number已经具有该单位px,或者写入$number*1px

来源

因此,我认为正确的方法如下,它保留了SASS/SCSS的数学能力:

$pad: 15px;
padding: 0 $pad $pad;
margin: 0 $pad*-1 20px $pad*-1;
郎宏逸
2023-03-14

根据sass指南,一个更合理的解决方案是插入变量,如以下示例:

margin: 0 -#{$pad} 20px -#{$pad};

例如:https://www.sassmeister.com/gist/c9c0208ada0eb1fdd63ae47830917293

甘西岭
2023-03-14

像这样试试

margin: 0 (-$pad) 20px (-$pad);
 类似资料:
  • 问题内容: 我有几个scss选择器,在其中我使用相同数量的正负值,如下所示: 我希望对所有15px的量都使用一个变量,但这不起作用: 保证金金额转换为正数。我想念什么吗? 问题答案: 像这样尝试

  • 问题内容: 有什么方法可以根据html元素上的类设置颜色变量?还是通过其他方式实现这一目标? 问题答案: 这是基本主题。您可能想使用mixin或包含一个CSS文件中的多个主题。这是使用包括以下内容的方法: _theme.scss main.scss 您可以轻松地制作一个混合色,它使用3种颜色作为其参数来代替include:

  • 问题内容: 我刚刚开始使用Sass和Compass,我喜欢它。我想做的就是利用该功能简化重复性任务。但是,我仅看到了插入一个变量的示例,并且我希望能够使用多个变量。 标准方式(来自[Sass参考): 很棒,但是我希望能够执行以下操作: 这可能吗? 问题答案: 我在同一条船上(Sass / Compass的初学者),不得不做类似的事情。这是我使用嵌套列表想到的: 这不是最优雅的解决方案,但是如果您找

  • 此代码在Sass中不起作用: 为什么这不是有效的语法?正确的语法是什么?

  • 问题内容: 我正在尝试在Sass样式表中使用该函数,但遇到了一些问题。这是我的代码: 如果我使用文字而不是变量,那么我得到的正是我想要的。但是,当我切换到变量时,这是输出: 如何让Sass认识到它需要替换函数中的变量? 问题答案: 插值: 对于这种情况,border-box也足够了:

  • 我试图在我的汇总配置中设置一个SASS结构,允许我在整个应用程序中使用变量。我想用POSTSS自动刷新器。我在插件阵列中设置了以下内容: 这很好,我可以在我的组件中导入我的SCSS文件,比如,