Apakah ada perbedaan fungsional antara CSS 2.1 :after
dan ::after
penyeleksi semu CSS 3 (selain ::after
tidak didukung di browser lama)? Apakah ada alasan praktis untuk menggunakan spesifikasi yang lebih baru?
Apakah ada perbedaan fungsional antara CSS 2.1 :after
dan ::after
penyeleksi semu CSS 3 (selain ::after
tidak didukung di browser lama)? Apakah ada alasan praktis untuk menggunakan spesifikasi yang lebih baru?
Jawaban:
Ini pseudo- class vs pseudo- elemen perbedaan.
Kecuali ::first-line
, ::first-letter
, ::before
dan ::after
(yang telah sekitar sedikit sementara dan dapat digunakan dengan titik dua tunggal akan jika Anda memerlukan dukungan IE8), pseudo elemen membutuhkan titik dua ganda.
Pseudo-class memilih elemen aktual itu sendiri, Anda dapat menggunakan :first-child
atau :nth-of-type(n)
untuk memilih yang pertama atau spesifik <p>
dalam div, misalnya.
(Dan juga keadaan elemen aktual seperti :hover
dan :focus
.)
Elemen pseudo menargetkan sub-bagian dari elemen seperti ::first-line
atau ::first-letter
, hal-hal yang bukan elemen.
Sebenarnya, deskripsi yang lebih baik di sini: http://bricss.net/post/10768584657/know-your-lingo-pseudo-class-vs-pseudo-element
Juga di sini: http://www.evotech.net/blog/2007/ 05 / after-v-after-what-is-double-colon-notation /
:after
dan secara ::after
bergantian dengan perilaku yang identik dengan pengecualian IE8 yang, sebagai catatan pertanyaan, membutuhkan titik dua.
Penyeleksi CSS seperti ::after
beberapa elemen virtual tidak tersedia sebagai elemen eksplisit di pohon DOM. Mereka disebut " Pseudo-Elements " dan digunakan untuk memasukkan beberapa konten sebelum / sesudah elemen (misalnya: ::before
, ::after
) atau, memilih beberapa bagian dari elemen (misalnya: ::first-letter
). Saat ini hanya ada 5 elemen semu standar: after, before, first-letter, first-line, selection
.
Di sisi lain, ada jenis lain dari selektor yang disebut " Pseudo-Classes " yang digunakan untuk menentukan keadaan khusus dari unsur (seperti sebagai :hover
, :focus
, :nth-child(n)
). Ini akan memilih seluruh elemen yang ada di DOM. Kelas pseudo adalah daftar panjang dengan lebih dari 30 item.
Awalnya (dalam CSS2 dan CSS1), sintaks kolon tunggal digunakan untuk pseudo-class dan pseudo-elements. Namun, dalam CSS3 ::
sintaks menggantikan :
notasi untuk pseudo-elements agar lebih baik membedakannya.
Untuk kompatibilitas ke belakang, sintaks kolon tunggal yang lama dapat diterima untuk elemen semu seperti as :after
(browser masih mendukung sintaks lama dengan satu titik koma). Hanya IE-8 yang tidak mendukung sintaks baru (gunakan titik-tunggal jika Anda ingin mendukung IE8).