html - Sass (SCSS) 如何使用独特的颜色和背景图像来简洁地设置多个元素的样式?

标签 html css loops sass

能否使用 SCSS 来整合这种为多个元素分配颜色和图像的 CSS,并使开发人员更容易进行编辑?

.tile--hamburger {
  color: tan;
  background-image: url("hamburger.jpg");
}

.tile--hotdog {
  color: red;
  background-image: url("hotdog.jpg");
}

.tile--fries {
  color: yellow;
  background-image: url("fries.jpg");
}

.tile--chicken {
  color: brown;
  background-image: url("chicken.jpg");
}

.tile--salad {
  color: green;
  background-image: url("salad.jpg");
}

最佳答案

Sass 中的 @each 指令可用于迭代变量映射,使此代码更易于管理。

$foods: (
  hamburger: tan,
  hotdog: red,
  fries: yellow,
  chicken: brown,
  salad: green
);

@each $name, $color in $foods {
  .tile--#{$name} {
    background-image: url('#{$name}.jpg');
    color: $color;
  }
}

关于html - Sass (SCSS) 如何使用独特的颜色和背景图像来简洁地设置多个元素的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45722367/

相关文章:

c++ - 如何检查数组中的所有值是否彼此相等。 C++

c++ - C++ CTRL+Z 使程序无限循环

javascript - JS循环遍历数组时的位置

javascript - jQuery .click 问题

CSS: float :右不能正常工作

html - Bootstrap 下拉悬停菜单没有响应

html - Div 仅在移动设备上在 CSS 动画开始时消失

javascript - ENTER 在 POST 上从\n 转换为\r\n

javascript - <span> 在第二行之后换行

html - Chrome 如何决定为 HTML5 MP4 缓冲多少视频?