【问题标题】:Class styled depending on element (h2/h3) with nested SCSS/ampersand?类样式取决于嵌套 SCSS/& 符号的元素(h2/h3)?
【发布时间】:2018-01-16 03:15:20
【问题描述】:

我觉得我在这里遗漏了一些非常明显的东西,我可以为它编写 CSS,但我想知道是否有办法使用嵌套的 SCSS。如果您在一个类上有样式,如果该类在不同的元素上,是否可以调整样式。例如h2,然后是h3。我知道你可以通过额外的课程来做到这一点,比如......

.title-class {
    background-size: 30px;
    font-size: 30px;

    &.another-class {
        background-size: 20px;
        font-size: 20px;
    }
}

这将呈现为.title-class.another-class {}

我追求的是.title-class {} 的基类和h3.title-class {} 的嵌套样式 - 有可能吗?

我认为类似以下(理论上)显然行不通!我尝试使用@root,但我对此的了解很少,所以我无法让它发挥作用。

.title-class {
    background-size: 30px;
    font-size: 30px;

    &h3 {
        background-size: 20px;
        font-size: 20px;
    }
}

提前致谢!

【问题讨论】:

  • 听起来您应该使用单独的课程和extend
  • 是的,我正在寻找一些方法来做到这一点,这更多是出于好奇。老实说,编写“标准”CSS 可能同样容易。谢谢!

标签: html css sass


【解决方案1】:

如果您尝试使用 title-class 类定位所有 h3 元素,不使用 @root 指令,您将使用以下内容:

h3 {
  &.title-class {
    color: blue
  }
}

如果您想使用 root 指令,请查看this already answered question,尽管我个人觉得在这种情况下它有点过于复杂。

【讨论】:

  • 是的,其中一些似乎有点啰嗦。老实说,我只是想尝试一下,看看有多少不同的方法可以实现,如果可以的话。也许一个更“标准”的 CSS 方法比嵌套的东西更适合它,并且更具可读性。感谢您的帮助!
  • 我决定只使用h3.title-class {} 来定位它。我尝试使用@at-root h3#{&},但它不起作用。我认为问题是我有几个替代.title-class ...所以父母实际上设置了.title-class-1, .title-class-2, .title-class-3 {}之类的东西。我认为用逗号分隔的多个类会导致问题?
  • 为避免创建多个类似的规则,您可能需要查看attribute selector。您可以匹配任何包含单词 title-class 的类。
猜你喜欢
  • 1970-01-01
  • 2021-09-01
  • 2015-01-16
  • 1970-01-01
  • 2013-06-15
  • 2016-11-24
  • 2017-03-07
  • 1970-01-01
相关资源
最近更新 更多