css - 将 "empty"参数传递给 SASS mixin,以便使用默认参数

标签 css sass

考虑以下两个混入:

@mixin padding($v: 8px)
  padding: $v - 3 $v $v - 3 $v

@mixin button($padding: "")
  @include padding($padding)
  @include border-radius
  border: 1px solid black

我可以不带参数地调用@include padding,并且使用默认的8px,没问题。但是我怎样才能调用 button mixin 并且仍然在 padding mixin 中使用默认值?如果我简单地调用 @include button 而不带参数,button mixin 似乎仍然将某种参数传递给 padding( padding 不可避免地解释为 0,因此不添加任何填充)。基于Making a Sass mixin with optional arguments ,我尝试修改 button 混入

@include padding(unquote($padding))

但这没有效果——padding 似乎仍然将参数解释为 0,而不是没有参数并因此使用其默认值。

最佳答案

这个问题通常通过将两个 mixin 的默认参数设置为相同的值来解决。您可能希望为此目的使用全局变量:

$default-padding: 8px

@mixin padding($v: $default-padding)
  padding: $v - 3 $v $v - 3 $v

@mixin button($padding: $default-padding)
  @include padding($padding)
  @include border-radius
  border: 1px solid black

关于css - 将 "empty"参数传递给 SASS mixin,以便使用默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21212239/

相关文章:

javascript - 单独使用 CSS 将 DOM 元素滚动到 View 中

javascript - 我怎样才能让一个垂直的div在全屏时变成水平的

css - webpack:是否可以将 SCSS 编译成 CSS?

css - 基础网格系统不生效

jquery - 重复多个图像作为不同样式的背景

css - 使缓存无效或添加http请求

html - CSS响应式定位内联元素的方式

SASS:不兼容的单位: 'vw' 和 'px'

javascript - 使用 React 使 Web 应用程序完全适合屏幕

css - map 上的 SASS 循环,获取下一次迭代