2013-03-17 25 views
5

<pseudo> </pseudo>?Loại phần tử của các phần tử giả là gì?

Các phần tử giả của CSS không có trong DOM. Nhưng nội bộ chúng phải tương đương với một số loại phần tử HTML chung, vì chúng có thể được tạo kiểu, có thể hiển thị và chúng ảnh hưởng đến luồng trang.

Loại phần tử của phần tử giả là gì?

Và chúng tôi có thể tạo chúng theo cách lập trình mà không cần sử dụng CSS không?

Trả lời

5

Phần tử giả không có loại phần tử nào có liên quan đến ngôn ngữ tài liệu vì bạn nói, chúng không tồn tại trong DOM và có thể được suy ra từ tiền tố "giả", chúng không phải là các phần tử "thực". CSS chỉ gọi chúng là các phần tử giả, tuy nhiên bạn có các phần tử giả khác nhau cho các mục đích khác nhau hoặc các phần khác nhau của cấu trúc phần tử, chẳng hạn như tự giải thích ::first-letter::first-line::before::after để tạo nội dung trước và sau nội dung thực của phần tử.

Các phần tử giả đó ảnh hưởng đến luồng trang không có gì liên quan đến DOM. Trình duyệt sử dụng CSS để bố trí và định dạng các phần tử DOM thành các đối tượng có thể được hiển thị trên màn hình và trong quá trình tạo các phần tử giả làm con cháu của các hộp được tạo cho các phần tử thực. Mặc dù bạn thường gắn một phần tử giả vào một phần tử, nhưng bạn không thay đổi DOM theo bất kỳ cách nào; thay vào đó, bạn chỉ đơn giản là thay đổi cách trình duyệt đưa ra một trang.

Vì phần tử giả là khái niệm duy nhất cho CSS (được xác định trong Selectors module), bạn không thể tạo chúng bằng bất kỳ thứ gì ngoài CSS. Việc triển khai các phần tử giả dưới dạng khái niệm CSS được định nghĩa trong CSSOM thay vào đó, là tương đương CSS của DOM (và các phương thức như window.getComputedStyle() được xác định). Tuy nhiên, tôi không quen thuộc với CSSOM, vì vậy tôi không thể bình luận sâu hơn là chúng được triển khai rất giống với các phần tử thực tế về CSS.

+0

Đó là câu trả lời hay và có ý nghĩa, nhưng bạn có bằng chứng hay không. Có thể có một số API trình duyệt ít được biết đến ... document._webkit_createPseudoElementBox (...) –

+0

Nó nằm trong các liên kết đặc tả - nếu có các phương thức chúng có khả năng là các phương thức CSSOM và không phải là các phương thức DOM. – BoltClock

+0

Thật tuyệt. Tôi đã học được CSSOM hôm nay. –