โดยทั่วไปคุณได้เพิ่มความยุ่งเหยิงในรหัสของคุณซึ่งสร้างความสับสนมากขึ้นดังนั้นก่อนอื่นฉันพยายามลบความยุ่งเหยิงที่เป็นอุปสรรคต่อการเข้าใจปัญหาที่แท้จริง
ก่อนอื่นเราต้องพิสูจน์ว่าอะไรคือคำถามจริง
นั่นเป็นสาเหตุที่inline-block
องค์ประกอบ "" ถูกผลักลง
ตอนนี้เราเริ่มที่จะเข้าใจและลบความยุ่งเหยิงก่อน
1 -
ทำไมไม่ให้ทั้งสาม divs ความกว้างเส้นขอบเดียวกัน
มาแจกกันเถอะ
2 -องค์ประกอบลอยมีการเชื่อมต่อใด ๆ กับองค์ประกอบในบล็อกถูกผลักลง ไม่ไม่มีอะไรเกี่ยวข้องกับมัน
ดังนั้นเราจึงได้นำ div ที่ทั้งหมด และคุณเห็นพฤติกรรมแบบเดียวกันขององค์ประกอบอินไลน์บล็อกที่ถูกผลักลง
ต่อไปนี้เป็นการเปิดวรรณกรรมบางส่วนเพื่อให้เข้าใจแนวคิดของกล่องรายการและวิธีเรียงแถวในบรรทัดเดียวกันโดยเฉพาะอ่านย่อหน้าสุดท้ายอย่างรอบคอบเพราะมีคำตอบสำหรับคำถามของคุณ
พื้นฐานของ 'บล็อกแบบอินไลน์' เป็นพื้นฐานของกล่องบรรทัดสุดท้ายในโฟลว์ปกติเว้นแต่ว่าจะไม่มีกล่องอินไลน์โฟลว์หรือหากคุณสมบัติ 'โอเวอร์โฟลว์' มีค่าที่คำนวณได้นอกเหนือจาก 'มองเห็น' ใน ซึ่งกรณีพื้นฐานคือขอบด้านล่าง
หากคุณไม่แน่ใจเกี่ยวกับพื้นฐานแล้วนี่คือคำอธิบายสั้น ๆ ในคำง่าย ๆ
อักขระทั้งหมดยกเว้น 'gjpqy' จะถูกเขียนบน baseline คุณสามารถคิดถึง baseline ราวกับว่าคุณวาดเส้นแนวนอนที่เรียบง่ายเหมือนกับการขีดเส้นใต้ด้านล่าง "ตัวอักษรแบบสุ่ม" จากนั้นมันจะเป็น baseline แต่ตอนนี้ถ้าคุณเขียน 'gjpqy' อักขระในบรรทัดเดียวกันส่วนล่างของอักขระเหล่านี้จะต่ำกว่าบรรทัด
ดังนั้นเราสามารถพูดได้ว่าตัวละครทุกตัวยกเว้น 'gjpqy' จะถูกเขียนอย่างสมบูรณ์เหนือเส้นฐานในขณะที่บางส่วนของตัวละครเหล่านี้จะถูกเขียนใต้เส้นฐาน
3 -ทำไมไม่ตรวจสอบพื้นฐานของสายของเราอยู่ที่ไหน ฉันได้เพิ่มตัวละครไม่กี่ตัวที่แสดงพื้นฐานของเส้นของเรา
4 -ทำไมไม่เพิ่มอักขระบางตัวใน div ของเราด้วยเพื่อหาเส้นเขตแดนใน div ในที่นี้มีการเพิ่มตัวอักขระบางตัวใน divs เพื่อทำให้พื้นฐานชัดเจนขึ้น
ตอนนี้เมื่อคุณเข้าใจเกี่ยวกับพื้นฐานอ่านฉบับย่อที่เรียบง่ายต่อไปนี้เกี่ยวกับพื้นฐานของบล็อกอินไลน์
i) หากคำถามแบบอินไลน์บล็อกมีคุณสมบัติโอเวอร์โฟลว์ตั้งค่าให้มองเห็นได้ (ซึ่งเป็นค่าเริ่มต้นดังนั้นจึงไม่จำเป็นต้องตั้งค่า) จากนั้นพื้นฐานของมันจะเป็นพื้นฐานของบล็อกที่มีของบรรทัด
ii) หากมีการบล็อกแบบอินไลน์ให้ตั้งค่าคุณสมบัติโอเวอร์โฟลว์เป็น OTHER กว่าที่มองเห็น จากนั้นขอบล่างของมันจะอยู่ที่เส้นฐานของกล่องบรรจุ
ตอนนี้ดูที่นี้อีกครั้งเพื่อชี้แจงแนวความคิดของคุณว่าสิ่งที่เกิดขึ้นกับ div หากยังมีความสับสนเกิดขึ้นที่นี่จะมีการเพิ่มตัวละครมากขึ้นใกล้กับ div สีเขียวเพื่อสร้างพื้นฐานของบล็อกที่มีและพื้นฐาน div div สีเขียวอยู่ในแนวเดียวกัน
ตอนนี้ฉันอ้างว่าพวกเขามีพื้นฐานเดียวกันหรือไม่ ขวา?
5 -แล้วทำไมไม่ทับซ้อนกันและดูว่ามันเหมาะสมกันหรือไม่ ดังนั้นฉันจะนำ div ที่สามซ้าย: 35px; เพื่อตรวจสอบว่าพวกเขามีพื้นฐานเดียวกันตอนนี้หรือไม่
ตอนนี้เราได้รับการพิสูจน์จุดแรกแล้ว
หลังจากคำอธิบายของจุดแรกจุดที่สองสามารถย่อยได้ง่ายและคุณเห็นว่า div แรกซึ่งมีคุณสมบัติโอเวอร์โฟลที่ตั้งค่าเป็นอื่นที่มองเห็นได้ (ซ่อนอยู่) มีระยะขอบด้านล่างบนบรรทัดฐานของบรรทัด
ตอนนี้คุณสามารถทำการทดลองสองสามครั้งเพื่ออธิบายเพิ่มเติม
- ตั้งครั้งแรก div ล้น: มองเห็น (หรือลบมันทั้งหมด)
- ชุดที่สองล้น div: อื่น ๆ นอกเหนือจากที่มองเห็นได้
- ตั้งทั้ง divs ล้น: อื่น ๆ นอกเหนือจากที่มองเห็นได้
ทีนี้ก็นำความยุ่งเหยิงของคุณกลับมาและดูว่าทุกอย่างดูดีหรือไม่
- นำdiv ที่ลอยของคุณกลับมา (แน่นอนว่าไม่จำเป็นต้อง
เพิ่มความกว้างของร่างกาย) คุณเห็นว่ามันไม่มีผลกระทบ
- นำกลับมาอัตรากำไรขั้นต้นที่แปลกเหมือนกัน
- ตั้งdiv สีเขียวเป็นโอเวอร์โฟลว์: มองเห็นได้ตามที่คุณตั้งไว้ในคำถามของคุณ (การเยื้องศูนย์นั้นเกิดจากการเพิ่มความกว้างของขอบจาก 1px เป็น 5px ดังนั้นหากปรับค่าลบทิ้งคุณจะเห็นว่าไม่มีปัญหา)
- ตอนนี้ลบอักขระเพิ่มเติมฉันจะเพิ่มความช่วยเหลือในการทำความเข้าใจ (และแน่นอนลบการลบด้านซ้าย)
- ในที่สุดก็ลดความกว้างของร่างกายเพราะเราไม่จำเป็นต้องกว้างอีกต่อไป
และตอนนี้เรากลับไปที่จุดเริ่มต้น
หวังว่าฉันได้ตอบคำถามของคุณแล้ว