2013-03-17 9 views
5

<pseudo> </pseudo>?Jaki jest typ elementów pseudoelementów?

Pseudoelementy CSS nie występują w DOM. Ale wewnętrznie muszą być one odpowiednikiem jakiegoś ogólnego elementu HTML, ponieważ mogą być stylizowane, mogą być widoczne i wpływają na przepływ stron.

Jaki jest typ elementu pseudo elementu?

Czy możemy programowo je tworzyć, bez użycia CSS?

Odpowiedz

5

Pseudoelementy nie mają typu elementu w odniesieniu do języka dokumentu, ponieważ, jak Państwo stwierdzacie, nie istnieją w DOM i jak można wywnioskować z przedrostka "pseudo-", oni " nie są "prawdziwymi" elementami. CSS po prostu nazywa je pseudoelementami, jednak masz różne pseudoelementy do różnych celów lub różne części struktur elementów, takie jak niewymagające wyjaśnień, do generowania treści przed i po rzeczywistej zawartości elementu.

Pseudoelementy wpływające na przepływ strony nie mają nic wspólnego z DOM. Przeglądarka używa CSS do układania i formatowania elementów DOM w obiekty, które mogą być renderowane na ekranie, a podczas tego procesu tworzy pseudoelementy jako potomkowie pudełek, które są wykonane dla rzeczywistych elementów. Chociaż zwykle dodajesz pseudoelement do elementu, w żaden sposób nie zmieniasz DOM; zamiast tego po prostu zmieniasz sposób, w jaki przeglądarka kładzie stronę.

Ponieważ pseudoelementy są pojęciem unikatowym dla CSS (zdefiniowanym w Selectors module), nie można ich tworzyć za pomocą niczego innego niż CSS. Implementacja pseudoelementów jako koncepcji CSS jest zdefiniowana w CSSOM, która jest odpowiednikiem DOM (i gdzie zdefiniowane są metody takie jak window.getComputedStyle()). Jednak nie jestem bardzo obeznany z CSSOM, więc nie mogę komentować dalej niż to, że są one implementowane bardzo podobnie do rzeczywistych elementów pod względem CSS.

+0

To dobra odpowiedź i ma sens, ale czy masz dowód. Może istnieć jakiś mało znany interfejs API przeglądarki ... document._webkit_createPseudoElementBox (...) –

+0

Jest w linkach do specyfikacji - jeśli istnieją metody, to prawdopodobnie są to metody CSSOM, a nie metody DOM. – BoltClock

+0

To jest fajne. Nauczyłem się, że dzisiaj jest CSSOM. –