css - 在css中的伪选择器之后添加类选择器

标签 css sass css-selectors pseudo-class

我可以在我的 CSS 规则中的伪类之后添加类选择器吗,例如:

a:hover.my-class {
    background: red;
}

因此,如果我将鼠标悬停在 anchor 标记上,<a class="my-class">link</a> , 背景在所有浏览器中都是红色的吗?这是有效的 CSS 吗?


为什么我需要这个

我有这个问题,因为它是从 SASS 中的混​​合生成的:

@mixin focus($classA, $classB) {
  &:focus {
    &#{$classA} {
      background: blue;
    }

    &#{$classB} {
      background: yellow;
    }
  }
}

a {
  @include focus('.class-a', '.class-b')
}

最佳答案

没有所谓的“伪选择器”。

以“pseudo-”开头的选择器有两种特性:伪类和伪元素。它们是具有不同语法规则的完全不同的功能。

可以将类选择器放在伪类之后,例如:hover,因为它们都是简单选择器,而且简单选择器在复合选择器中的顺序不重要(类型和通用选择器是此规则的唯一异常(exception) - 它们始终必须排在第一位,例如您示例中的 a)。

不能将类选择器放在伪元素之后,例如::before,因为伪元素不是简单的选择器。您的问题可能与伪元素无关,但由于术语“伪选择器”的普遍使用,必须做出这种区分,该术语错误地将两个特征分组为一个总称(坦率地说,这使问题比它真的需要)。

关于css - 在css中的伪选择器之后添加类选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45264866/

相关文章:

html - 具有特定数据属性的 div 选择器

css - ie9 中的 fontello 字体不起作用?

css - 如何在 css( sass ) 中重用通用的 css 规则

HTML/CSS3 表格行 : first 2 rows white, 接下来的 2 行是灰色的,然后接下来的 2 行又是白色的,依此类推?

javascript - 将鼠标悬停在标记上时不要更改鼠标图标

html - 使 flex 部分和一般部分宽度相同

css - 为什么我的重复函数在 css 的网格属性中不起作用?

html - 为什么类 ="btn btn-default"而不是只有类 ="btn-default"

javascript - 内部错误 : Invalid UTF-8 - Sass & Gulp

css - 如何为 IE 11 编写 CSS hack?