2013-03-17 21 views
5

<pseudo> </pseudo>?Sözde elemanların eleman tipi nedir?

CSS'nin sözde öğeleri DOM'de değil. Ancak dahili olarak, bir tür jenerik HTML öğesine eşdeğer olmaları gerekir, çünkü bunlar stillenebilir, görünür olabilir ve sayfa akışını etkiler.

Sözde bir öğenin öğe tipi nedir?

Ayrıca bunları CSS kullanmadan program aracılığıyla oluşturabilir miyiz?

cevap

5

Sözde elemanlar hiçbir öğesi devlet olarak, onlar DOM bulunmayan, çünkü belge dili ilgilidir kadarıyla yazın var ve "sözde" öneki den çıkarılabileceği gibi, bunlar' "gerçek" unsurlar değil. CSS sadece sözde-elemanlar olarak adlandırılır, ancak farklı amaçlarla veya eleman yapılarının farklı parçaları için, örneğin bir öğenin gerçek içeriğinden önce ve sonra içerik oluşturmak için kendi kendini açıklayıcı ::first-letter ve ::first-line ve ::before ve ::after gibi farklı sözde öğeleriniz vardır.

Bu sözde öğelerin etkilediği sayfa akışının DOM ile ilgisi yoktur. Bir tarayıcı, DOM öğelerini ekrana işlenebilecek nesnelere yerleştirmek ve biçimlendirmek için CSS kullanır ve bu işlem sırasında, gerçek öğeler için üretilen kutuların torunları olarak sahte öğeler oluşturur. Bir öğeye tipik olarak bir sözde öğe eklemiş olmanıza rağmen, DOM'u hiçbir şekilde değiştirmezsiniz; bunun yerine, tarayıcının bir sayfayı nasıl yerleştirdiğini değiştiriyorsunuz.

Sözde öğeler CSS'ye özgü bir kavram olduğu için (Selectors module'da tanımlanmıştır), bunları CSS'den başka bir yöntemle oluşturamazsınız. Bir CSS kavramı olarak sözde-elemanların uygulanması, bunun yerine DOM'in CSS eşdeğeri olan CSSOM'da tanımlanmıştır (ve burada window.getComputedStyle() gibi yöntemler tanımlanmıştır). Ancak CSSOM'a çok aşina değilim, bu yüzden CSS açısından gerçek öğelere çok benzer şekilde uygulandıklarından daha fazla yorum yapamam.

+0

Bu iyi bir cevap ve mantıklı, ama kanıtınız var mı? Bazı az bilinen tarayıcı API olabilir ... document._webkit_createPseudoElementBox (...) –

+0

Bu spec bağlantıları vardır - yöntemleri varsa olası CSSOM yöntemleri ve DOM yöntemleri değil. – BoltClock

+0

Bu harika. Bugün bir CSSOM olduğunu öğrendim. –

İlgili konular