【问题标题】:Why does background color only work on parent class? [duplicate]为什么背景颜色只适用于父类? [复制]
【发布时间】:2014-10-04 14:45:05
【问题描述】:

这是一个在 SCSS 中绘制正方形的简单示例。为什么背景色只有在.color中才生效,.black不生效?

CodePen

<div class="color black"></div>

.color {
  width: 112px;
  height: 112px;
  display: block;
  // background: #000;
  .black {
    background: #000;
  }
}

【问题讨论】:

  • class=black 的元素在哪里?
  • 您是否尝试查看编译结果?此外,您的班级名称不匹配。
  • 你是这个意思吗? codepen.io/anon/pen/Gkwup
  • 很确定你写的意思是“.color”中的“.black”,所以这就是为什么你没有得到“#000”的背景颜色
  • 我在帖子中错误地使用了错误的类名,但在我的工作示例中是正确的。我真正的问题是我忘记了 .black 之前的 &

标签: html css sass


【解决方案1】:

因为.black 认为它是一个子元素。所以.black 部分正在寻找一个元素,它是.color 的子元素。

.color {
  width: 112px;
  height: 112px;
  display: block;
  // background: #000;
  .black {
    background: #000;
  }
}

如果你的 html 看起来像这样

<div class='color'>
    <div class='black'></div>
</div>

然后它会正常工作。

事实上,你需要一个&amp; 在黑色前面。

.color {
  width: 112px;
  height: 112px;
  display: block;
  // background: #000;
  &.black {
    background: #000;
  }
}

这就像您期望的那样工作。

【讨论】:

  • 谢谢,我忘了&amp;。除了这个答案,嵌套类时你是否总是必须使用&amp;?
  • 如果你说的是同一个元素,是的。如果你的意思是子元素,没有。
  • 如果你想要一个子元素,你也可以使用&amp; .black(注意空格),但这相当于.black。有些人喜欢一直使用&amp;,但我觉得它很混乱。我只在必要时使用它,所以如果我的意思是使用相同的元素。
猜你喜欢
  • 2020-01-09
  • 2022-07-28
  • 2021-04-22
  • 2020-03-15
  • 1970-01-01
  • 2021-02-05
  • 2013-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多