Rumah > Artikel > hujung hadapan web > Sebab dan penyelesaian untuk kegagalan atas margin firefox_Pertukaran pengalaman
Mengapa menterjemah huraian ini? Seseorang telah menterjemah css2, tetapi selepas melihatnya, ia sangat kasar (saya tidak mengatakan bahawa saya seorang sahaja, penterjemahnya sangat mengagumkan!). xhtml, tetapi semakin banyak, semakin banyak kekeliruan.
Sekarang saya rasa banyak masalah tidak boleh dikatakan masalah sama sekali Puncanya terletak pada persefahaman kita yang tergesa-gesa Sebagai contoh, membunuh ayam dengan pisau lembu tidak mustahil, tetapi tidak munasabah dan tidak sesuai. penampilan akan menjadi salah, jika anda mula menyelesaikan masalah dari penampilan, tidak dapat dielakkan bahawa anda akan sentiasa keliru.
Dalam perihalan ini, "jidar runtuh" bermaksud: atribut jidar bersebelahan antara 2 atau lebih model kotak (hubungan boleh bersebelahan atau bersarang) (tidak boleh ada kandungan kosong, kawasan pelapik, sempadan atau menggunakan kaedah pemisahan yang jelas) digabungkan dan diwakili sebagai margin tunggal.
Dalam CSS2.1, jidar mendatar tidak akan diruntuhkan.
Jing menegak mungkin diruntuhkan dalam beberapa model kotak:
1 Dalam aliran dokumen biasa, jidar menegak bersebelahan 2 atau lebih model kotak peringkat blok akan diruntuhkan.
Kaedah pengiraan nilai margin akhir adalah seperti berikut:
a Jika semua adalah nilai positif, ambil yang terbesar
b Jika tidak semua adalah nilai positif, ambil nilai mutlak, dan kemudian tolak nilai maksimum daripada nilai positif ;
c.
Nota: Model kotak bersebelahan mungkin dijana secara dinamik daripada elemen DOM dan tidak mempunyai hubungan bersebelahan atau warisan.
2. Dalam bersebelahan dan model, jika salah satu daripadanya terapung, jidar menegak tidak akan runtuh, walaupun antara model kotak terapung dan elemen anaknya.
3. Jidar antara elemen dengan set atribut limpahan dan elemen anaknya tidak akan diruntuhkan (kecuali apabila nilai limpahan kelihatan).
4. Untuk model kotak dengan set kedudukan mutlak (kedudukan:mutlak), jidar menegak tidak akan diruntuhkan, walaupun dengan elemen anak mereka.
5 Untuk elemen dengan set paparan: blok sebaris, jidar menegak tidak akan diruntuhkan, walaupun dengan elemen anak mereka.
6 Jika jidar atas dan bawah model kotak bersebelahan, jidarnya mungkin runtuh melaluinya. Dalam kes ini, kedudukan elemen bergantung pada sama ada jidar unsur bersebelahannya diruntuhkan.
a. Jika jidar unsur dan jidar atas unsur induknya diruntuhkan bersama-sama, takrifan sempadan atas jidar model kotak adalah sama dengan unsur induknya.
b. Selain itu, unsur induk bagi mana-mana elemen tidak mengambil bahagian dalam lipatan jidar, atau hanya jidar bawah unsur induk mengambil bahagian dalam pengiraan. Jika bahagian atas sempadan elemen adalah bukan sifar, maka kedudukan atas sempadan elemen adalah sama seperti sebelumnya.
Biping atas elemen yang mempunyai operasi yang jelas digunakan tidak akan runtuh dengan jidar bawah elemen induk peringkat bloknya.
Perhatikan bahawa kedudukan elemen yang telah diliputi oleh lipatan tidak mempunyai kesan ke atas kedudukan elemen lain yang telah runtuh kedudukan sempadan atas hanya diperlukan apabila meletakkan anak-anak unsur-unsur ini.
7. Jidar menegak unsur akar tidak akan runtuh.
Judar-bawah elemen tahap blok terapung sentiasa bersebelahan dengan jidar atas adik beradik tahap blok masuk terapung seterusnya, melainkan elemen saudara itu dikosongkan.
Bibir atas elemen peringkat blok terapung bersebelahan dengan bahagian atas jidar anak peringkat blok terapung pertamanya (anak peringkat blok terapung pertama) (jika elemen itu tidak mempunyai bahagian atas sempadan, tiada padding-top, dan elemen kanak-kanak tidak dibersihkan).
Jika jidar bawah unsur tahap blok terapung memenuhi syarat berikut, maka ia bersebelahan dengan jidar bawah unsur anak tahap blok terapung terakhirnya (jika elemen itu tidak menyatakan dasar pelapik atau jidar ):
a. Ketinggian:auto dinyatakan
b ketinggian min adalah kurang daripada ketinggian sebenar unsur (ketinggian)
c. ketinggian)
Jika min bagi elemen -Atribut ketinggian ditetapkan kepada 0, maka jidar yang dimilikinya adalah bersebelahan, dan ia tidak mempunyai sempadan atas dan sempadan bawah, mahupun padding-top dan padding-bottom atribut ketinggian boleh menjadi 0 atau auto, Ia tidak boleh mengandungi model kotak sebaris (kotak baris), dan jidar semua elemen anak terapungnya (jika ada) bersebelahan.
Apabila jidar yang dimiliki oleh sesuatu elemen diruntuhkan dan ia menggunakan operasi yang jelas, bahagian atas jidarnya akan diruntuhkan dengan jidar bersebelahan unsur adik beradik serta-merta, tetapi hasilnya ialah jidarnya tidak akan konsisten dengan jidar. Keruntuhan bahagian bawah bagi unsur induk peringkat blok.
Operasi lipatan adalah berdasarkan nilai padding, jidar dan jidar (iaitu, selepas pelayar menghuraikan semua nilai ini Pengiraan jidar yang dilipat akan menimpa nilai jidar berbeza yang telah digunakan).