Select 所有伪元素和 类
Select all pseudo elements and classes
有一堆伪元素和类:
::after, ::before, ::first-letter, ::first-line, ::selection, ::backdrop
:active, :checked, :default, :dir(), :disabled, :empty, :enabled, :first, :first-child, :first-of-type, :fullscreen, :focus, :hover, :indeterminate, :in-range, :invalid, :lang(), :last-child, :last-of-type, :left, :link, :not(), :nth-child(), :nth-last-child(), :nth-last-of-type(), :nth-of-type(), :only-child, :only-of-type, :optional, :out-of-range, :read-only, :read-write, :required, :right, :root, :scope, :target, :valid, :visited
还有其他的,比如::-webkit-input-placeholder、::-moz-placeholder等等。我不知道它们是什么元素。但我认为它们是伪元素,因为它有双冒号。
有一个星号 select 或 *
到 select DOM-Tree.
内的所有元素
现在,我很好奇为什么没有单个 select 或 selecting 所有伪元素和 DOM 之外的伪 类-甚至 css3 或 css4?
中的树
*pseudo{
color: red;
}
*
选择任何元素,无论其性质或状态如何。这样,它已经覆盖了所有伪类,只是零特异性
例如,*
将匹配任何元素,无论它是 :first-child
、:last-child
还是两者(它本身可以使用 :only-child
或:first-child:last-child
)。它还将匹配任何 link,无论它是未访问的 (:link
) 还是已访问的 (:visited
),以及它是否匹配 :hover
/[=19 中的一个或多个=]/:focus
.
如果您正在寻找一种方法来为给定元素使用伪类 覆盖任何和所有 CSS 规则(这在动态伪[= 的情况下很有用) 47=] 例如 links),唯一的方法是使用 ID 选择器、内联样式属性或 !important
.
*
不匹配伪元素因为是一个simple selector, and a simple selector only matches actual elements. See my answer to this question求详细解释
没有匹配所有伪元素的选择器的可能原因是拥有一个没有意义,因为不同的伪元素工作方式不同并且对哪个伪元素有不同的限制CSS 属性可以应用于它们。例如,content
和 display
不适用于 ::first-letter
、::first-line
或 ::selection
。但是通用选择器存在是因为元素本身没有定义适用的 CSS 属性(无论如何 not usually);就 CSS 而言,每个 元素 或多或少相等。
有一堆伪元素和类:
::after, ::before, ::first-letter, ::first-line, ::selection, ::backdrop
:active, :checked, :default, :dir(), :disabled, :empty, :enabled, :first, :first-child, :first-of-type, :fullscreen, :focus, :hover, :indeterminate, :in-range, :invalid, :lang(), :last-child, :last-of-type, :left, :link, :not(), :nth-child(), :nth-last-child(), :nth-last-of-type(), :nth-of-type(), :only-child, :only-of-type, :optional, :out-of-range, :read-only, :read-write, :required, :right, :root, :scope, :target, :valid, :visited
还有其他的,比如::-webkit-input-placeholder、::-moz-placeholder等等。我不知道它们是什么元素。但我认为它们是伪元素,因为它有双冒号。
有一个星号 select 或 *
到 select DOM-Tree.
现在,我很好奇为什么没有单个 select 或 selecting 所有伪元素和 DOM 之外的伪 类-甚至 css3 或 css4?
中的树*pseudo{
color: red;
}
*
选择任何元素,无论其性质或状态如何。这样,它已经覆盖了所有伪类,只是零特异性
例如,*
将匹配任何元素,无论它是 :first-child
、:last-child
还是两者(它本身可以使用 :only-child
或:first-child:last-child
)。它还将匹配任何 link,无论它是未访问的 (:link
) 还是已访问的 (:visited
),以及它是否匹配 :hover
/[=19 中的一个或多个=]/:focus
.
如果您正在寻找一种方法来为给定元素使用伪类 覆盖任何和所有 CSS 规则(这在动态伪[= 的情况下很有用) 47=] 例如 links),唯一的方法是使用 ID 选择器、内联样式属性或 !important
.
*
不匹配伪元素因为是一个simple selector, and a simple selector only matches actual elements. See my answer to this question求详细解释
没有匹配所有伪元素的选择器的可能原因是拥有一个没有意义,因为不同的伪元素工作方式不同并且对哪个伪元素有不同的限制CSS 属性可以应用于它们。例如,content
和 display
不适用于 ::first-letter
、::first-line
或 ::selection
。但是通用选择器存在是因为元素本身没有定义适用的 CSS 属性(无论如何 not usually);就 CSS 而言,每个 元素 或多或少相等。