Rumah >hujung hadapan web >tutorial css >Mengapa CSS :after Tidak Berfungsi dengan Semua Elemen HTML?

Mengapa CSS :after Tidak Berfungsi dengan Semua Elemen HTML?

DDD
DDDasal
2024-12-24 13:07:30540semak imbas

Why Doesn't CSS :after Work with All HTML Elements?

CSS :selepas Kelakuan dan Keserasian Elemen

Sifat CSS :after memanjangkan kandungan selepas elemen dalam aliran dokumennya. Walau bagaimanapun, tidak semua elemen kelihatan menyokong tingkah laku ini. Mengapa :after hanya berfungsi dengan elemen tertentu?

Jawapan: Elemen yang Diganti vs. Elemen Tidak Diganti

Mengikut spesifikasi CSS, hanya elemen yang tidak diganti boleh mempunyai sifat :sebelum dan :selepas. Elemen yang diganti mempunyai rupa dan dimensi yang ditentukan secara luaran, termasuk elemen seperti imej, pemalam dan kawalan borang.

Apakah Elemen yang Digantikan?

Elemen yang diganti termasuk:

  • Imej (Mengapa CSS :after Tidak Berfungsi dengan Semua Elemen HTML?)
  • Pemalam ()
  • Elemen bentuk (,

Kenapa :sebelum dan :selepas Jangan Bekerja dengan Diganti Elemen

Spesifikasi CSS menyatakan bahawa interaksi :sebelum dan :selepas dengan elemen yang diganti tidak ditakrifkan sepenuhnya. Aspek ini dikhaskan untuk spesifikasi masa hadapan.

Contoh

Pertimbangkan contoh berikut:

<span>Content of span</span>
span:before {
  content: "Before ";
}

span:after {
  content: " After";
}

Struktur DOM untuk ini contohnya ialah:

<span>
  <before>Before </before>
  Content of span
  <after> After</after>
</span>

Struktur ini tidak berfungsi untuk elemen yang diganti seperti imej kerana ia tidak mempunyai kandungan dengan cara yang sama seperti elemen tidak diganti.

Oleh itu, sifat CSS :after hanya boleh digunakan dengan elemen tidak diganti, kerana penampilannya ditentukan oleh kandungan dalam elemen itu sendiri.

Atas ialah kandungan terperinci Mengapa CSS :after Tidak Berfungsi dengan Semua Elemen HTML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn