Rumah > hujung hadapan web > tutorial css > Mengapakah `margin: auto` Tidak Memusatkan Elemen Berkedudukan Benar atau Tetap?

Mengapakah `margin: auto` Tidak Memusatkan Elemen Berkedudukan Benar atau Tetap?

Patricia Arquette
Lepaskan: 2024-11-10 06:06:03
asal
1017 orang telah melayarinya

Why Doesn't `margin: auto` Center Absolutely or Fixed Positioned Elements?

Mengapa Margin:auto Sahaja Tidak Akan Memusatkan Elemen Diposisikan

Apabila cuba memusatkan elemen div dalam bekas induk menggunakan kedudukan: mutlak atau kedudukan: sifat tetap, menggunakan margin: auto sahaja mungkin tidak mencukupi.

Memahami Spesifikasi CSS

Mengikut spesifikasi CSS, untuk elemen dengan kedudukan: relatif atau kedudukan: statik (aliran normal), menetapkan kedua-dua margin-kiri dan margin-kanan ke auto mendatar memusatkan elemen berbanding blok yang mengandunginya, kerana nilai yang digunakan menjadi sama. Walau bagaimanapun, ini tidak terpakai kepada elemen dengan kedudukan: mutlak atau kedudukan: tetap.

Untuk elemen kedudukan mutlak atau tetap, di mana ketiga-tiga kiri, lebar dan kanan adalah automatik, nilai margin-kiri yang digunakan dan margin-kanan ditetapkan kepada 0 untuk mengelakkan pemusatan. Untuk memusatkan elemen sedemikian, seseorang mesti menentukan nilai untuk kiri, kanan atau lebar.

Kesan Penetapan kiri, kanan dan lebar

Jika kiri, kanan, dan lebar semuanya ditakrifkan, margin mendapat nilai yang sama, menghasilkan pemusatan. Meninggalkan mana-mana nilai ini akan menyebabkan elemen menyimpang daripada penjajaran tengah.

Demonstrasi dengan Kes Berbeza

Jadual berikut menunjukkan pelbagai kes, seperti yang diterangkan dalam CSS spesifikasi:

Margin Setting Centring
margin-left: auto; margin-right: auto Yes (flow element)
margin-left: auto; margin-right: auto No (absolute/fixed element)
left: auto; right: auto; width: auto No (margin set to 0)
left: 0; right: 0; width: auto No (margin set to 0)
right: auto; left: auto; No (margin set to 0)
left: auto; right: auto; width: 200px Yes (equal margins)
left: 0; width: auto Yes (equal margins)
right: 0; width: auto Yes (equal margins)

Atas ialah kandungan terperinci Mengapakah `margin: auto` Tidak Memusatkan Elemen Berkedudukan Benar atau Tetap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan