Adakah Beretika untuk Menukar Elemen Sekatan kepada Elemen Sebaris Menggunakan CSS Apabila Ia Mengandungi Elemen Sekat Lain?
Dalam HTML, elemen blok secara semula jadi mengalir sebagai unit individu, menduduki keseluruhan lebar bekasnya. Elemen sebaris, sebaliknya, muat dalam baris teks yang sama seperti elemen sebaris lain.
Pertimbangkan penanda HTML yang sah berikut:
<div><p>This is a paragraph</p></div>
Menggunakan peraturan CSS berikut:
div { display: inline; }
menukar div menjadi elemen sebaris, manakala elemen p tertutup kekal sebagai elemen blok secara lalai. Ini mewujudkan situasi di mana elemen sebaris (div) mengandungi elemen blok (p).
Timbul persoalan: adakah ini melanggar kesahihan HTML? Untuk menjawab ini, kita mesti mempertimbangkan bagaimana kesahihan HTML dinilai. Adakah ia ditentukan sebelum peraturan CSS digunakan atau selepas itu?
Mengikut spesifikasi CSS 2.1:
When an inline box contains an in-flow block-level box, the inline box (...) is broken around the block-level box (...) splitting the inline box into two boxes.
Dalam erti kata lain, CSS mentakrifkan secara eksplisit cara elemen sebaris harus bertindak apabila mengandungi elemen blok . Dalam contoh kami, div dibahagikan kepada dua kotak blok tanpa nama untuk menampung p.
Walaupun spesifikasi CSS jelas mentakrifkan tingkah laku, ia meninggalkan persoalan terbuka tentang konsistensi merentas penyemak imbas. Walau bagaimanapun, memandangkan CSS ialah standard web, penyemak imbas dijangka mematuhi spesifikasinya.
Selain itu, HTML5 telah melonggarkan beberapa sekatan ini, membenarkan elemen peringkat blok dalam elemen sebaris dalam konteks tertentu, seperti dalam tag sauh. Ini amat berguna apabila membuat blok besar kandungan terpaut.
Akhirnya, sama ada ia boleh diterima atau tidak untuk menukar elemen blok kepada elemen sebaris yang mengandungi elemen blok bergantung pada kes penggunaan tertentu dan kebimbangan keserasian penyemak imbas. Jika tingkah laku yang konsisten merentas penyemak imbas adalah penting, mungkin lebih baik untuk mengelakkan binaan sedemikian.
Atas ialah kandungan terperinci Adakah Beretika untuk Menggayakan Elemen Sekat sebagai Elemen Sebaris yang Mengandungi Elemen Sekat Lain dengan CSS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!