Pada dasarnya Anda telah menambahkan lebih banyak kekacauan dalam kode Anda yang menciptakan lebih banyak kebingungan, jadi pertama-tama saya mencoba untuk menghilangkan kekacauan yang menghalangi memahami masalah sebenarnya.
Pertama-tama kita harus menetapkan bahwa apa pertanyaan sebenarnya?
" inline-block
" Itu sebabnya elemen didorong ke bawah.
Sekarang kita mulai memahaminya dan menghapus kekacauan dulu.
1 -
Mengapa tidak memberikan ketiga lebar perbatasan divs yang sama?
Mari kita berikan.
2 - Apakah elemen mengambang memiliki koneksi dengan elemen blok sebaris didorong ke bawah? Tidak, itu tidak ada hubungannya dengan itu.
Jadi, kami telah menghapus div itu sama sekali . Dan Anda menyaksikan perilaku yang sama elemen inline-blok didorong ke bawah.
Di sinilah giliran beberapa literatur untuk memahami ide kotak garis dan bagaimana mereka berbaris dalam baris yang sama khususnya membaca paragraf terakhir dengan hati-hati karena ada jawaban atas pertanyaan Anda.
Garis dasar 'blok sebaris' adalah garis dasar kotak baris terakhir dalam aliran normal, kecuali jika ia tidak memiliki kotak garis dalam-aliran atau jika properti 'luapannya' memiliki nilai yang dihitung selain 'terlihat', di yang mana baseline adalah tepi margin bawah.
Jika Anda tidak yakin tentang garis dasar maka berikut adalah penjelasan singkat dengan kata-kata sederhana.
Semua karakter kecuali 'gjpqy' ditulis pada garis dasar Anda dapat menganggap garis dasar seolah-olah Anda menggambar garis horizontal sederhana yang sama dengan menggarisbawahi tepat di bawah "karakter acak" ini maka itu akan menjadi garis dasar tetapi sekarang jika Anda menulis salah satu dari 'gjpqy' karakter pada baris yang sama maka bagian bawah dari karakter ini akan jatuh di bawah garis.
Jadi, kita dapat mengatakan bahwa semua karakter kecuali 'gjpqy' ditulis sepenuhnya di atas garis dasar sementara beberapa bagian dari karakter ini ditulis di bawah garis dasar.
3 - Mengapa tidak memeriksa di mana garis dasar dari baris kami? Saya telah menambahkan beberapa karakter yang menunjukkan garis dasar dari baris kami.
4 - Mengapa tidak menambahkan beberapa karakter di div kami juga untuk menemukan garis dasar mereka di div? Di sini, beberapa karakter ditambahkan dalam div untuk memperjelas baseline .
Sekarang ketika Anda memahami tentang garis dasar, baca versi sederhana berikut tentang garis dasar blok-inline.
i) Jika inline-block dalam pertanyaan memiliki properti overflow diatur ke terlihat (yang secara default jadi tidak perlu diatur). Kemudian garis dasar akan menjadi garis dasar dari blok yang mengandung garis.
ii) Jika inline-block dalam pertanyaan memiliki properti overflow diatur ke LAIN DARIPADA terlihat. Kemudian margin bawahnya akan berada di garis dasar garis kotak yang berisi.
- Poin pertama secara detail
Sekarang lihat ini lagi untuk memperjelas konsep Anda bahwa apa yang terjadi dengan green div . Jika ada kerancuan maka di sini ditambahkan lebih banyak karakter yang dekat dengan green div untuk menetapkan garis dasar blok yang berisi dan baseline hijau div diselaraskan.
Nah, saya sekarang mengklaim bahwa mereka memiliki garis dasar yang sama? BAIK?
5 - Lalu mengapa tidak tumpang tindih mereka dan melihat apakah mereka cocok satu sama lain? Jadi, saya membawa div ketiga-kiri: 35px; untuk memeriksa apakah mereka memiliki baseline yang sama sekarang ?
Sekarang, kami telah mendapatkan poin pertama kami terbukti.
Nah, setelah penjelasan titik pertama, titik kedua mudah dicerna dan Anda melihat bahwa div pertama yang memiliki properti melimpah diatur selain terlihat (tersembunyi) memiliki margin bawahnya di garis dasar garis.
Sekarang, Anda dapat melakukan beberapa percobaan untuk menggambarkannya lebih lanjut.
- Setel overflow div pertama: terlihat (atau hapus semuanya) .
- Setel overflow div kedua: selain terlihat .
- Atur kedua divs overflow: selain terlihat .
Sekarang bawa kembali kekacauan Anda dan lihat apakah semuanya tampak baik bagi Anda.
- Bawa kembali div Anda yang melayang (tentu saja ada kebutuhan untuk
menambah lebar tubuh). Anda melihatnya tidak berpengaruh.
- Bawa kembali margin ganjil yang sama .
- Setel div hijau ke overflow: terlihat saat Anda mengatur dalam pertanyaan Anda (misalignment adalah karena peningkatan lebar perbatasan dari 1px ke 5px jadi jika menyesuaikan kiri negatif Anda akan melihat tidak ada masalah)
- Sekarang hapus karakter tambahan yang saya tambahkan untuk membantu memahami . (dan tentu saja hapus kiri negatif)
- Akhirnya mengurangi lebar tubuh karena kita tidak perlu lagi lebar.
Dan sekarang kita kembali ke tempat kita mulai.
Semoga saya telah menjawab pertanyaan Anda.