将 sass 列表传递给具有多个参数的 mixin

2023-12-09

我正在尝试创建一个 sass mixin,它将列表中不确定数量的项目作为 mixin 中的参数。

最终目标是拥有一个 mixin,可用于设置进度条不同值的颜色样式(即当进度条具有较低值时为红色)。这是我为 mixin 想到的:

@mixin progress-value($value..., $color...) {

    progress[value="#{$value}"] { 
        color: #{$color}; 

        &::-webkit-progress-value { background-color:  #{$color}; }
        &::-moz-progress-bar { background-color: #{$color}; }
    }   
}

// Calling the mixin
@include progress-value("0.25, #de2b23", "0.5, #FF8330", "0.75, #8A9F4A", "1, #14BB64");

我知道这是我与包含一起使用的列表,但我不确定如何分解该列表并将其传递给每个参数,或者这是否是最好的方法。

我可以创建一个更简单的 mixin 版本,并为每个样式值调用它,但这看起来不太干燥。


你可以尝试这样的事情:

@mixin make_progress($val,$col){
  progress[value="#{$val}"] {
    color: #{$col};
    &::-webkit-progress-value { background-color:  #{$col}; }
    &::-moz-progress-bar { background-color: #{$col}; }
  }  
}

@mixin progress-value($value-color...) {
    @each $progress in $value-color {
      @include make_progress(nth($progress,1),nth($progress,2));
    }
}

// Calling the mixin
@include progress-value(0.25 #de2b23);
// and with a multideimensional list
@include progress-value(0.5 #FF8330, 0.75 #8A9F4A, 1 #14BB64);

如果您将参数作为comma分开的列表space分隔对 - 值/颜色,就像我在上面的示例中所做的那样,或者以其他方式明确您的参数列表是多维的- 就像将每个传递的对包含在括号中:

// with a single parameter
@include progress-value((0.25, #de2b23));
// or with multiple parameters
@include progress-value((0.5, #FF8330), (0.75, #8A9F4A), (1, #14BB64));

我还做了一个单独的 mixinmake_progress,为了更好地概述,并且如果您想在循环之外的其他实例中调用它,但您可以轻松地将其保留在循环内。

DEMO

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 sass 列表传递给具有多个参数的 mixin 的相关文章

  • 单击导航项锚链接时如何关闭切换菜单

    请看我的FIDDLE http jsfiddle net ayhpp8ax 我有一个带有 响应式 导航菜单 带有指向页面上元素的锚链接 的 1 页网站 当浏览器视口小于特定宽度 在我的情况下为 767px 时 使用此 javascript
  • 在 ember-cli 中安装 Foundation 5

    我对 ember 相当陌生 对构建工具也很陌生 我目前正在使用通常的基础安装以及基础 cli 和指南针来编译我的 css 这有点痛苦 并且对于团队工作来说非常糟糕 我认为用 Bower 安装文件并使用会更好ember cli compass
  • 基于现有类的 Sass 'if' 语句

    我是 Sass 新手 想使用 if 语句来检测元素上的现有类 以便生成相关的 css 我的设置有大量 Javascript 生成的图像 这些图像被分配了唯一的 ID 以及 图片 类和随机分配的上 右 下或左类 我还使用 Sass 的随机函数
  • 如何使使用 css 调整大小的图像在 IE 中看起来不错?

    当使用 css 宽度 高度或属性宽度 高度缩放图像时 IE6 和 IE7 无法很好地缩放网页中的图像 我不确定它默认使用哪种算法 但这不好 在这些浏览器中缩放时 缩放图像会显示锯齿伪影 幸运的是 有一种方法可以通过简单的 css 规则强制
  • 如何通过单击链接来更改 div 的内容?

    这是我的网页的 修改后的 jsfiddle 它还有很多 而且定位是正确的 与此相反 http jsfiddle net ry0tec3p 1 http jsfiddle net ry0tec3p 1 a href class btn1 st
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何在模态打开时防止主体滚动

    我在用着W3schools 模态脚本 https www w3schools com howto tryit asp filename tryhow css modal我想添加一个功能 防止模型打开时整个主体滚动 我根据我的需要对原始脚本做
  • 具有 100% 高度行和 Internet Explorer 9 的表格

    我有以下示例 div style height 150px background color AAAAFF div
  • Webpack 4:如何使用 LESS 获取 CSS 源映射?

    多年来我一直在尝试让 CSS 源映射在 webpack 中工作 但没有成功 我不确定链条中哪里出了问题 我希望有人能指出我正确的方向 这是发生的事情 行号是错误的 实际上文件名也是错误的 main less只是包含一堆 import也就是说
  • IE 11 中的 CSS Display Flex 无法正常工作,图像会溢出

    我正在使用 CSSdisplay flex 以某种方式显示它们 在 Chrome 中 它看起来很完美 很漂亮 但在 IE 中 图像超出了我放置它们的元素 https jsfiddle net m42k7Lk5 8 https jsfiddl
  • 使用反增量更改 z-index

    我尝试制作一个图像滑块 当鼠标悬停在一个点上时 它将显示图片 我也尝试使用在图像之间切换z index但什么也没动 slider counter reset index 1000 slider input name slide switch
  • 如何为 HTML 元素创建鼠标拖动滑块?

    我发现的许多滑块插件要么仅单击以查看下一个图像 要么如果它们确实具有鼠标拖动或触摸拖动功能 则仅允许图像 有谁知道为任何 html 元素编写鼠标拖动滑块的插件或可能的方法 我专门使用 SVG 但将来如果能在 div 元素之间滑动就更好了 H
  • @media语法/可能的组合

    我见过其中一些 media print media screen handheld print projection media all media all and property value media screen and prope
  • Angular - CSS - 自定义类型=文件输入,如何使用按钮而不是标签?

    我制作了一个类型为 file 的自定义输入字段 因为我不喜欢默认的输入字段 为了实现这一目标 我做了
  • 为 Angular2 中的组件加载多个样式表

    我正在构建一个 angular2 应用程序 当我尝试为同一组件加载多个样式表时 我面临多个问题 这是我正在做的代码 import Component from angular core Component selector my tag t
  • CSS 类命名约定

    在网页上 有两个控件块 主要和次要 大多数人会使用什么类名 选择一 div class primary controls div
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • HTML 锚点,禁用样式

    我有一些 html 锚链接代码 与文档的其余部分不同 我希望它看起来不是链接 有没有一种简单的方法可以禁用由于将文本包装在锚标记中而引起的样式更改 而不必强行使其相同 即 如果我更改正文字体样式 我不必也更改其他一些 link东西 将颜色设

随机推荐

  • Google 地球 KML 中的文本叠加

    我想添加 KML 文件上次更新的日期 时间 以便在 Google 地球中显示为覆盖图 无论如何可以做到这一点吗 我会考虑更新 KML 文件中的文本 然后将其显示在谷歌地球中 非常感谢 一个技巧是使用谷歌图表API从文本动态创建图像并将其用作
  • C# MySQL 错误“列计数与第 1 行的值计数不匹配”

    Query SQL MySqlCommand command1 new MySqlCommand INSERT INTO Equipamento equipamento situacao modelo nr serie avaria est
  • 如何使用 EF6 Code First 将外键属性公开给具有导航属性的现有实体

    我有一个已经与底层数据库一起使用的实体 并且它是使用可选实体 1 0 1 的导航属性创建的 因此 按照默认约定 EF 在数据库中创建了一个可为空的外键列 并根据该约定为其指定了带下划线的 MyProp Id 名称 现在 我希望将该外键公开为
  • 在 bash 脚本中使用 grep 在日志文件上使用 tail -f

    我想创建一个脚本来查找正在写入的日志文件中的特定字符串 我想获取第一个结果并将其放入变量中以供以后使用 这将通过 SSH 连接使用 如下所示 ssh email protected bash s lt usr local bin check
  • 默认情况下使用 uuid 时 Cassandra TimeUUID 泛洪文件描述符

    我有 Cassandra 模型 import uuid from cassandra cqlengine import columns from cassandra cqlengine models import Model class M
  • 如何使用 24 位位图的 ScanLine 属性?

    如何使用ScanLine24 位位图像素操作的属性 为什么我应该更喜欢使用它而不是经常使用Pixels财产 一 简介 在这篇文章中我将尝试解释ScanLine属性用法仅适用于 24 位位图像素格式以及您是否确实需要使用它 首先来看看是什么让
  • 带有 CUDA 的 Pytorch 在 Ubuntu 上本地安装失败

    我正在尝试使用 CUDA 安装 PyTorch 我按照中提到的说明 使用 conda 安装 进行操作https pytorch org get started locally conda 安装 pytorch torchvision tor
  • 在 Ubuntu 上安装 Mono-Complete 4.8

    我正在尝试安装Mono 4 8 in a Docker图片 但我下载失败 这是 dockerfile RUN apt get update apt get install y curl rm rf var lib apt lists apt
  • 如何附加到 Azure 存储文件共享中的文件?

    我想将条目写入存储在 Azure 文件存储中的日志文件 我目前有这个 var log My log entry var client storageAccount CreateCloudFileClient var share client
  • 如何在 MongoDB shell 中创建可尾游标?

    我想直接在 MongoDB 中为上限集合创建一个无限处理循环 但我找不到如何在 MongoDB shell 中获取 tailabale 游标 在 Python 中可以使用tailable选项中集合 find 尽管 您可以使用 addOpti
  • Java:读取一个巨大文件的最后n行

    我想读取一个非常大的文件的最后 n 行 而不使用 Java 将整个文件读入任何缓冲区 内存区域 我查看了 JDK API 和 Apache Commons I O 但无法找到适合此目的的一个 我正在考虑 tail 或 less 在 UNIX
  • 使用for循环匹配具有各种扩展名的文件[重复]

    这个问题在这里已经有答案了 我正在尝试匹配并循环扩展名为 txt h py 的文件 在特定文件夹 arg 中 这是我所做的 for file in arg txt h py do done 然而 即使我有这样的文件 我也没有得到所有扩展名的
  • Android-Listview项目滚动时背景颜色变化

    My ListView包含两个Textviews 在一行中 第一个用于名称 第二个用于结果 我需要更改结果的背景颜色TextView根据结果 就像如果通过那么结果TextView结果失败时颜色将为绿色TextView颜色将是红色 我有十行L
  • NSJSONSerialization + AFNetworking 出现无法识别的选择器错误

    Update 我刚刚使用以下命令测试了从服务器返回的 JSON 格式JSONlint没关系 我在 AFNetworking 调用返回 JSON 数据的 php 脚本时遇到 NSJSONSerialization 异常 我在这里查看了具有相同
  • 复制时可执行文件以某种方式损坏

    我正在使用Qt的QNetworkAccessManager从一个地方 当前是本地机器 但将来它将是一个HTTP服务器 下载一个文件并将其临时存储在TEMP文件中 linux ubuntu 我发现的问题是该文件 这是一个可执行文件 在此过程中
  • PHP 获取目录中图像的尺寸

    我有大量照片需要整理 我需要知道每张照片的尺寸才能知道 否则需要重新调整大小 作为一名程序员 我相信必须有一种更快的方法来做到这一点 我已经走了很远了 以下代码读取目录和所有子目录 但当我尝试提取尺寸时 循环在需要检查的所有图片的 8 处停
  • 如何删除数组中的“空”元素?

    我目前正在做一个编码挑战 其中指出 给定一个单词列表 返回可以在美式键盘的一行上使用字母输入的单词 如下图所示 这是 QWERTY 键盘的图像 例子 Input Hello Alaska Dad Peace Output Alaska Da
  • Rust 打印后从控制台读取输入

    我只是在制作一个小程序 我试图通过控制台从用户那里获取输入 这是我的代码 print Enter values seperated by spaces let mut input String new match io stdin read
  • 通过HTTP适配器传递参数?

    我想在用户注册我的混合应用程序 基于 IBM Worklight 6 0 后向他 她发送一封电子邮件 我想将用户的参数 电子邮件 ID 传递到托管的 PHP 文件 我尝试直接在 URL 中发送邮件 如下所示 效果如下 http www xx
  • 将 sass 列表传递给具有多个参数的 mixin

    我正在尝试创建一个 sass mixin 它将列表中不确定数量的项目作为 mixin 中的参数 最终目标是拥有一个 mixin 可用于设置进度条不同值的颜色样式 即当进度条具有较低值时为红色 这是我为 mixin 想到的 mixin pro