<pseudo> </pseudo>
?
CSS的伪元素不在DOM中。但在内部它们必须等同于某种通用HTML元素,因为它们可以被设置样式,可见,并且它们会影响页面流。
伪元素的元素类型是什么?
我们可以在不使用CSS的情况下以编程方式创建它们吗?
答案 0 :(得分:5)
就文档语言而言,伪元素没有元素类型,因为正如你所说,它们不存在于DOM中,并且可以从“伪”前缀推断,它们不是“真正的”元素。 CSS只是将它们称为伪元素,但是您有不同的伪元素用于不同目的或元素结构的不同部分,例如不言自明的::first-letter
和::first-line
以及::before
和::after
用于在元素的实际内容之前和之后生成内容。
伪元素影响页面流与DOM无关。浏览器使用CSS来布局DOM元素并将其格式化为可以呈现给屏幕的对象,并且在这样做的过程中创建伪元素作为为真实元素制作的框的后代。虽然您通常会将伪元素附加到元素,但您不会以任何方式更改DOM;相反,你只是改变浏览器如何布置页面。
因为伪元素是CSS独有的概念(在Selectors module中定义),所以不能使用CSS以外的任何东西创建它们。伪元素作为CSS概念的实现在CSSOM中定义,它是DOM的CSS等价物(并且定义了window.getComputedStyle()
之类的方法)。但是我对CSSOM并不是很熟悉,所以我不能进一步评论它们在CSS方面与真实元素的实现非常相似。