Rumah >hujung hadapan web >tutorial css >Mengapa \'display: block\' dan \'width: auto\' Tidak Meregangkan Butang untuk Mengisi Bekas dalam Chrome?

Mengapa \'display: block\' dan \'width: auto\' Tidak Meregangkan Butang untuk Mengisi Bekas dalam Chrome?

Barbara Streisand
Barbara Streisandasal
2024-10-29 05:42:021060semak imbas

Why Doesn't

Mengapa "paparan: blok" & "lebar: auto" Tidak Meregangkan Butang untuk Mengisi Bekas

Apabila menggunakan "paparan: blok" dan "lebar: auto" pada butang, anda mungkin menjangkakan butang itu meregang dan mengisi bekas seperti elemen blok lain. Walau bagaimanapun, tingkah laku ini tidak berlaku dalam versi terbaharu Chrome.

Memahami Gelagat

Sebab bagi tingkah laku ini terletak pada pengelasan butang sebagai "elemen yang diganti. " Elemen yang diganti, yang termasuk elemen input, pilih, butang, img, objek dan textarea, mempunyai ciri paparan lalai khusus.

Menurut spesifikasi CSS, elemen yang diganti boleh mempunyai dimensi intrinsik yang ditentukan oleh sumber luaran, seperti imej atau kawalan pelayar. Contohnya, jika elemen imej mempunyai set lebar kepada "auto", ia akan menggunakan lebar sebenar fail imej yang dipautkan.

Selain itu, elemen yang digantikan boleh mempunyai keperluan pemformatan visual yang dikenakan oleh elemen itu sendiri, seperti kerana rupa antara muka pengguna mengawal elemen borang, yang berada di luar kawalan CSS.

Bagaimana Ini Mempengaruhi Butang

Walaupun butang tidak dianggap sebagai elemen yang digantikan tulen sebagai ditakrifkan oleh W3C, mereka berkelakuan serupa dalam konteks ini. Secara lalai, mereka mempunyai dimensi intrinsik berdasarkan kandungannya dan "display: block" tidak mengatasi gelagat ini.

Penyelesaian untuk Regangan Butang

Jika anda mahu butang regangan untuk mengisi bekas, anda boleh menggunakan pendekatan alternatif:

<code class="css">button {
  display: flex;
  width: 100%;
}</code>

Flexbox menyediakan lebih kawalan ke atas saiz elemen dan membolehkan elemen diregangkan untuk mengisi ruang yang tersedia.

Atas ialah kandungan terperinci Mengapa \'display: block\' dan \'width: auto\' Tidak Meregangkan Butang untuk Mengisi Bekas dalam Chrome?. 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