В основному ви додали більше безладу у свій код, що створює більше плутанини, тому спершу я намагаюся видалити безлад, який заважає зрозуміти реальну проблему.
Перш за все, ми повинні встановити, що справжнє питання?
Це тому, що " inline-block
" елемент штовхається вниз.
Тепер ми починаємо це розуміти і спочатку видаляємо безлад.
1 -
Чому б не дати всім трьом дивам однакової ширини кордону?
Дамо це.
2 - Чи має плаваючий елемент який-небудь зв’язок з тим, що елемент вбудованого блоку штовхається вниз? Ні, це не має нічого спільного.
Отже, ми цю діву взагалі зняли . І ви є свідком тієї ж поведінки, що елемент вбудованого блоку відсувається вниз.
Тут настає черга деякої літератури, щоб зрозуміти уявлення про прямокутні поля та про те, як вони вишиковуються в одному рядку esp, уважно читайте останній абзац, оскільки там лежить відповідь на ваше запитання.
Базова лінія "вбудованого блоку" є базовою лінією останнього вікна рядка у звичайному потоці, якщо тільки у нього немає або вікон рядків в потоці, або якщо його властивість "переповнення" має обчислене значення, відмінне від "видимого", у у цьому випадку базовою лінією є нижній край краю.
Якщо ви не впевнені в базовій лінії, то ось коротке пояснення простими словами.
Усі символи, крім 'gjpqy', написані на базовій лінії, ви можете думати про базову лінію так, як якщо б ви намалювали просту горизонтальну лінію, таку ж, як підкреслення прямо під цими "випадковими символами", то це буде базовою лінією, але тепер, якщо ви пишете будь-який із "gjpqy" символів на тому ж рядку, то нижня частина цих символів опуститься нижче рядка.
Отже, ми можемо сказати, що всі символи, крім 'gjpqy', написані повністю вище базової лінії, а частина цих символів написана нижче базової лінії.
3 - Чому б не перевірити, де є базовою лінією нашої лінії? Я додав кілька символів, які показують базову лінію нашої лінії.
4 - Чому б також не додати деяких символів до наших дівок, щоб знайти їх у базовому рядку? Тут деякі символи додаються в divs для уточнення базової лінії .
Тепер, коли ви розумієте про базову лінію, прочитайте наступну спрощену версію про базову лінію вбудованих блоків.
i) Якщо у відповідного вбудованого блоку властивість переповнення встановлено як видиме (що за замовчуванням не потрібно встановлювати). Тоді його базовою лінією було б базове значення, що містить блок рядка.
ii) Якщо у відповідного вбудованого блоку властивість переповнення встановлено на ІНШИЙ, ніж видимий. Тоді його нижнє поле було б на базовій лінії рядка, що містить поле.
Тепер перегляньте це ще раз, щоб уточнити свою концепцію того, що відбувається із зеленим дівом . Якщо все-таки плутанина, то сюди додається більше символів, близьких до зеленого div, щоб встановити базову лінію, що містить блок, і зелений базовий рядок div вирівняний.
Ну, я зараз стверджую, що вони мають однаковий базовий рівень? ПРАВО?
5 - Тоді чому б не перекрити їх і не побачити, чи правильно вони підходять одна до одної? Отже, я приношу третій div -left: 35px; щоб перевірити, чи є у них однаковий базовий рівень зараз ?
Тепер ми підтвердили нашу першу точку.
Отже, після пояснення першої точки друга точка легко засвоюється, і ви бачите, що перший div, який має властивість переповнення, встановленого на інше, ніж видиме (приховане), має нижнє поле на базовій лінії рядка.
Тепер ви можете зробити кілька експериментів, щоб додатково проілюструвати це.
- Встановіть перше переповнення: видно (або видаліть його повністю) .
- Встановіть другий перелив діви: крім видимого .
- Встановіть переливання обох div: крім видимих .
А тепер поверніть свою занепокоєння і подивіться, чи все виглядає на вас добре.
- Принесіть назад свій плаваючий div (звичайно, потрібно
збільшити деяку ширину тіла). Ви бачите, що це не впливає.
- Поверніть ті самі непарні поля .
- Встановити зелений div для переповнення: видно, коли ви ставите у своєму запитанні (це нерівність пов’язана із збільшенням ширини кордону з 1px до 5px, тому якщо відрегулювати мінус, ви побачите, що проблеми немає)
- Тепер видаліть додаткових символів, які я додав, щоб допомогти зрозуміти . (і звичайно видалити мінус зліва)
- Нарешті зменшіть ширину тіла, тому що нам більше не потрібна ширша.
І тепер ми повернулися до того, з чого почали.
Сподіваюся, я відповів на ваше запитання.