2013-03-17 42 views
5

<pseudo> </pseudo>什么是伪元素的元素类型?

CSS的伪元素不在DOM。但是在内部,它们必须等同于某种通用HTML元素,因为它们可以被设置样式,可以被看见,并且会影响页面流。

什么是伪元素的元素类型?

而且我们可以通过编程创建它们,而不使用CSS?

回答

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中的实际元素非常类似。

+0

这是一个很好的答案,它是有道理的,但你有证据。可能有一些鲜为人知的浏览器API ... document._webkit_createPseudoElementBox(...) – 2013-03-17 12:39:31

+0

它在spec链接中 - 如果有方法,它们可能是CSSOM方法而不是DOM方法。 – BoltClock 2013-03-17 12:45:03

+0

很酷。我知道今天有一个CSSOM。 – 2013-03-17 12:46:26