当前位置: 首页 > 面试题库 >

通用选择器*和伪元素

沈博延
2023-03-14
问题内容

通用选择器是否*会影响伪元素,例如:before:after

让我举一个例子:

执行此操作时:

* { box-sizing: border-box; }

......没有上述声明包括自动/影响伪元素,如:before:after呢?

或者,为了影响诸如:before和的伪元素:after,必须声明这一点?

*, *:before, *:after { box-sizing: border-box; }

这有意义吗?

我一直只* { box-sizing: border-box; }使用伪元素,而从来没有任何问题。但是我看到许多教程在做,*, *:before, *:after但是它们从没有真正解释为什么将它们包含*:before, *:after在声明中。


问题答案:

不,通用选择器*不影响伪元素(通过继承间接除外,因为伪元素通常作为实际元素的子元素生成)。

通用选择器与其他命名元素选择器(例如p和)一样div,是一个简单的选择器:

一个 简单的选择器 可以是类型选择器,通用选择器,属性选择器,类选择器,ID选择器或伪类。

一个简单的选择器,以及扩展到任何复杂的选择器,仅针对实际元素。

虽然伪元素(它们是
作为伪类上面提到的相同的东西)可以一起简单选择器在选择符号出现,伪元素被完全从简单的选择器分开,因为它们表示从实际元素单独的DOM的抽象,因此两者都代表不同的事物。您不能使用简单的选择器来匹配伪元素,也不能将样式应用于选择器中带有伪元素的CSS规则中的实际元素。

因此,为了匹配:before:after任何元素的伪元素,是的,一个需要包含*:before, *:after在选择。拥有权限* { box-sizing: border-box; }不会影响它们,因为box-sizing通常不会继承它们,因此,它们将保留default box- sizing: content-box

您可能永远不会对伪元素产生任何问题的一个可能原因是,它们默认情况下以内联方式显示,因为box-sizing对内联元素没有任何影响。

一些注意事项:

  • 与其他所有简单选择器链一样,如果*不是唯一选择器,则可以将其省略,这*, :before, :after等效于*, *:before, *:after。话虽如此,*为了清楚起见,通常将其包括在内-大多数作者*在编写ID和类选择器时都习惯于省略,但不编写伪类和伪元素,因此对于他们来说,这种表示法似乎有些奇怪甚至是错误的(实际上是完全有效的)。

  • 我上面链接到的当前Selectors规范表示带有双冒号的伪元素。这是当前规范中引入的新符号,用于区分伪元素和伪类,但是大多数box-sizing重置使用单冒号表示来容纳IE8,IE8支持box-sizing但不支持双冒号表示法。

  • 虽然*:before, *:after样式应用于各自的伪元素 的任何 元素,其中包括html" target="_blank">htmlheadbody,伪元素将直到应用实际上不能产生content财产。您不必担心任何性能问题,因为没有任何问题。。



 类似资料:
  • 伪元素选择器,并不是基于真正的元素,而是基于元素当前所具有的特性来选取元素。由于这些元素本身并不存在于文档中,只是基于元素的抽象,因此称作伪元素。 伪元素选择器是CSS 中已经定义好的选择器,不能由用户随便起名,只能按CSS规定的标准格式使用。语法格式为: 选择器:伪元素 { 属性: 值 } 伪元素选择器在CSS中一直存在,但CSS3对伪元素进行了一定的调整,把选择器和伪元素之间冒号,由CSS1和

  • 问题内容: 如何将伪元素选择器()与属性选择器()组合在一起? 我尝试使用,但这在Chrome中不起作用。 HTML: CSS: 在每个div的末尾显示“ YES”,第二个div之后应显示“ NO”。 我正在运行Chrome 17.0.963.38。在Safari 5.1.2中似乎可以正常工作。 问题答案: 这看起来像个错误,终于被报道了。如果您为样式表中的任何位置 添加CSS规则并至少包含一个声

  • 问题内容: 我想选择伪元素 这是我的CSS: 码 问题答案: 直接绑定到伪元素是不可能的,因为它们不是DOM的一部分,但是可以通过绑定到父元素并测试与作用于该元素的元素相关的偏移来近似达到预期的效果: 以下显示为,其中单击“ ELEMENT”和“ ++”分别会触发不同的行为:

  • 本文向大家介绍属性选择器和伪类选择器的优先级?相关面试题,主要包含被问及属性选择器和伪类选择器的优先级?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 属性选择器和伪类选择器优先级相同

  • 本文最初发表于博客园,并在GitHub上持续更新前端的系列文章。欢迎在GitHub上关注我,一起入门和进阶前端。 以下是正文。 伪类(伪类选择器) 伪类:同一个标签,根据其不同的种状态,有不同的样式。这就叫做“伪类”。伪类用冒号来表示。 比如div是属于box类,这一点很明确,就是属于box类。但是a属于什么类?不明确。因为需要看用户点击前是什么状态,点击后是什么状态。所以,就叫做“伪类”。 静态

  • 问题内容: 有没有办法使用jQuery 选择/处理CSS伪元素,例如和(以及带有分号的旧版本)? 例如,我的样式表具有以下规则: 如何使用jQuery将’foo’更改为’bar’? 问题答案: 您还可以将内容传递给具有data属性的伪元素,然后使用jQuery进行操作: 在HTML中: 在jQuery中: 在CSS中: 如果要防止显示“其他文本”,可以将其与seucolega的解决方案结合使用,如