将Sass变量用于选择器

假设您需要在代码的多个位置使用某个选择器。 可以肯定的是,这不是很普遍,但是确实有事情发生。 重复的代码通常是抽象的机会。 在Sass中抽象值很容易,但是选择器却有些棘手。

一种方法是将选择器创建为变量。 这是一个用逗号分隔的选择器列表的示例:

$selectors: "
  .module,
  body.alternate .module
";

然后使用它,您必须对变量进行插值,如下所示:

#{$selectors} {
  background: red;
}

这也适用于嵌套:

.nested {
  #{$selectors} {
    background: red;
  }
}

前缀

变量也只能是选择器的一部分 ,例如前缀。

$prefix: css-tricks-;

.#{$prefix}button {
  padding: 0.5rem;
}

您也可以使用嵌套做前缀:

.#{$prefix} {
  &module {
    padding: 1rem;
  } 
  &header {
    font-size: 110%;
  }
  &footer {
    font-size: 90%;
  }
}

地图中的选择器

也许您的抽象适合键/值对的情况。 那是萨斯的地图。

$selectorMap: (
  selectorsFoo: ".module",
  selectorsBar: ".moodule-2"
);

您可以单独使用它们,例如:

#{map-get($selectorMap, selectorsFoo)} {
  padding: 1rem;
}

或遍历它们:

@each $selectorName, $actualSelector in $selectorMap {
  #{$actualSelector} {
    padding: 1rem;
  }
}

例子

见笔选择器的萨斯变量克里斯Coyier( @chriscoyier上) CodePen

翻译自: https://css-tricks.com/snippets/sass/use-sass-variable-selector/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值