css - 将 Sass 用于动态颜色

标签 css

.brown,.blue,.pink,.orange,.red,.yellow,.green,.navy,.taxes {
display:block;
text-align:center;
font-size:10px;
font-family:Helvetica;
font-weight:700;
background:#000;/*<--- the color of this should be brown, blue, pink etc*/
color:#fff;
width:100%;
}
.brown{
background: brown;
}

目前这是我实现这种效果的方式。我的问题是:实现这种效果的最有效方法是什么?在 SASS 中,我可以做到这一点,但我仍然需要为每种颜色编写 6 个不同的变量,所以不确定这样做是否更有效率。

另请注意,我使用的是类名而不是 ID 名,因为每种颜色都有多个实例,有 2 种棕色、3 种蓝色、3 种粉红色。那么我对类的使用是否正确,因为 id 应该真正用于唯一值?

最佳答案

我不建议以这种方式编写 CSS,但您可以创建一个列表,然后循环遍历它。 例如:

SASS

$colorList:
    "white" #fff,
    "grey" #ccc
;

@each $i in $colorList {
    .color-#{nth($i,1)} {
         background-color: nth($i,2);
    }
}

输出CSS

.color-grey {
   background-color: #ccc;
}

.color-white {
   background-color: #fff;
}

关于css - 将 Sass 用于动态颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21264679/

相关文章:

c# - CSS 中的 JavaScript 在回发时丢失 (ASP.NET)

javascript - Bootstrap 缩略图对齐(水平)

html - 媒体查询不适用于移动屏幕尺寸

javascript - 当它大于特定屏幕宽度时如何停止 jQuery 点击功能?

javascript - 通过 Id 更改样式元素获取元素

html - CSS嵌套的flexbox为什么在有空间时最后一个字换行?

html - 无法理解为什么 div 不填充父 div?

css - 垂直对齐 CheckboxTableCell 的复选框

html - 使用无序列表居中视觉内容(具有流体响应布局)

javascript - 放大 div 并使缩放和定位与子 div 匹配的简单方法?