2013-03-17 50 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