通用选择器是否*影响像:before和的伪元素:after?
让我举一个例子:
这样做时:
* { box-sizing: border-box; }
Run Code Online (Sandbox Code Playgroud)
......没有上述声明包括自动/影响伪元素,如:before和:after呢?
或者,为了影响像:before和的伪元素:after,必须声明这个?
*, *:before, *:after { box-sizing: border-box; }
Run Code Online (Sandbox Code Playgroud)
这有意义吗?
我总是使用just * { box-sizing: border-box; }而且从来没有任何关于伪元素的问题.但我看到许多教程正在做,*, *:before, *:after但他们从未真正解释为什么它们包含*:before, *:after在声明中.
有一堆伪元素和类:
伪元素:
:: 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等等.我不知道它们是什么元素.但我认为它们是伪元素,因为它有双冒号.
有一个星号选择器*来选择DOM-Tree内的所有元素.
现在,我很想知道为什么没有单个选择器来选择所有伪元素和DOM-Tree之外的伪类,即使在css3或css4中也是如此?
*pseudo{
color: red;
}
Run Code Online (Sandbox Code Playgroud) 因此,我一直在尝试自己寻找以下代码实际上对每种操作的作用,但我只是无法完全理解。
/*Global Style*/
*,
*::before,
*::after{
margin: 0;
padding: 0;
box-sizing: inherit;
}
Run Code Online (Sandbox Code Playgroud)
我是从视频中复制的,因此并没有真正向我解释所有内容。如果您可以向我解释此代码,我将不胜感激!先谢谢了