Dalam bidang penanda HTML dan penggayaan CSS, difahami secara meluas bahawa bersarang elemen blok dalam elemen sebaris melanggar piawaian web yang ditetapkan. Walau bagaimanapun, situasi pelik timbul apabila senario terbalik ditemui: elemen sebaris yang mengandungi elemen blok.
Pertimbangkan coretan berikut:
<div><p>This is a paragraph</p></div>
Penanda ini kelihatan sah dengan sempurna sehingga CSS yang membingungkan di bawah digunakan:
div { display:inline; }
Teka-teki timbul apabila kita meneliti yang terhasil laman web. Elemen div sebaris kini menyertakan elemen p peringkat blok, yang berkemungkinan melanggar peraturan HTML dan CSS konvensional.
Kekaburan Kesahan
Persoalan kesahihan menjadi yang terpenting. Adakah elemen halaman masih mematuhi piawaian web? Sesetengah mungkin berpendapat bahawa penanda awal adalah sah tetapi CSS menjadikan elemen tidak sah, manakala yang lain mungkin menegaskan bahawa kesahihan harus dinilai selepas aplikasi CSS.
Enigma Spesifikasi CSS
Spesifikasi CSS 2.1 menyediakan definisi samar untuk senario khusus ini:
"Apabila kotak sebaris mengandungi kotak tahap blok aliran masuk, kotak sebaris [...] dipecahkan di sekeliling kotak tahap blok, membelah kotak sebaris kepada dua kotak..."
Penjelasan ini membayangkan bahawa elemen sebaris dibahagikan kepada dua, pada asasnya mencipta kotak blok tanpa nama di sekeliling elemen blok terbenam. Walau bagaimanapun, spesifikasi meninggalkan soalan yang tidak terjawab berkenaan pelaksanaan dan ketekalan merentas penyemak imbas.
Ketidakpastian Pelaksanaan Penyemak Imbas
Sementara spesifikasi CSS cuba menentukan gelagat, pelaksanaannya dalam pelbagai penyemak imbas tetap menjadi satu tekaan. Sesetengah penyemak imbas mungkin mengikut spesifikasi, manakala yang lain mungkin mempamerkan pelaksanaan alternatif, seperti memberikan sempadan di sekeliling elemen sebaris yang mengandungi elemen blok.
Pengecualian HTML5
Menambahkan kerumitan kepada situasi tersebut, HTML5 memperkenalkan pengecualian yang membenarkan elemen peringkat blok diletakkan dalam elemen sebaris tertentu, seperti tag. Pengecualian ini memberikan kelemahan kepada pembangun yang ingin mencipta blok besar kandungan boleh klik.
Kesimpulan
Kesahihan menukar elemen blok kepada sebaris dengan elemen blok terbenam kekal sebagai subjek perbahasan. Walaupun spesifikasi CSS menyediakan rangka kerja, tafsiran dan pelaksanaannya merentas penyemak imbas mungkin berbeza-beza. Akibatnya, pembangun harus berhati-hati apabila menggunakan teknik ini, terutamanya berkenaan dengan pertimbangan keserasian merentas penyemak imbas.
Atas ialah kandungan terperinci Bolehkah Elemen Sebaris yang Mengandungi Elemen Blok Dianggap HTML Sah, Memandangkan Manipulasi CSS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!