【问题标题】:Assign Styles to a selector from another selector CSS将样式分配给另一个选择器 CSS 中的选择器
【发布时间】:2019-08-17 11:28:35
【问题描述】:

有没有办法让一个类或任何具有特定样式的选择器,然后将这些样式共享、导入或分配给另一个选择器。这是为了创建多个类,而不必一直返回 HTML 代码来分配这些类。

例如:

.orangeText{
 color:orange
}

.strongtext{
 font-weight:900
}

一个常规的场景会像这样使用这些类:

<div class="orangeText strongtext">My orange Strong Text</div>

我正在寻找这样的东西:

.orangeText{
 color:orange
}

.strongtext{
 font-weight:900
}

.orangeStrongTitle{
  @.orangeText; /* Import styles from .orangeText*/
  @.strongtext; /* Import styles from .strongtext*/
  text-decoration:underline;
}

在 HTML 上:

<div class="orangeStrongTitle">My orange Strong Text</div>

请注意 @.orangeText 是我的发明,我想举例说明我想要什么,我不知道这样的事情是否存在,我受到 @import 的启发

这可能吗?

【问题讨论】:

  • 少用。有了它,您实际上只需输入.orangeText; .strongtext; text-decoration: underline;,它就会编译为适当的CSS。需要一些设置,但它确实让事情变得更容易(尤其是嵌套功能)。
  • 你也可以使用 SASS
  • 谢谢@NiettheDarkAbsol,我正在寻找一个普通的解决方案,我现在没有安装或使用第三方库的选项,但请添加您的解决方案作为一个工作示例的答案,我肯定会投票给你的答案。
  • 谢谢@GrzegorzMiśkiewicz,同样的事情请添加一个工作示例作为答案,我会投票赞成。谢谢

标签: css


【解决方案1】:

使用传统的 CSS 似乎你做不到。

看到这个话题:Is it possible to combine classes in CSS?

除非您使用 LESS 或 SASS 的“混合”功能,否则没有真正的方法 纯 CSS 来“继承”其他类。你能做的最好的就是申请 DOM 元素的所有三个类。如果你的问题是你 页面上已有大量此类,并且您想添加 属性,你可以这样做:

.foo, .bar, .foobar {
    color: red;
}

这会将 color: red 应用于任何具有 .foo 或 .bar 或 .foobar.

编辑

既然您要举个例子,下面是 SASS 的 mixin 功能的工作原理:

@mixin mixin-name {
  margin: 0;
  padding: 0;
}

ul {
  @include mixin-name;
}

拥有这个将编译成这个:

ul {
  margin: 0;
  padding: 0;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-31
    • 2021-10-02
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多