У трьох словах: inline-blockкраще.
Вбудований блок
Єдиний недолік display: inline-blockпідходу полягає в тому, що в IE7 і нижче елемент може відображатися лише в тому inline-blockвипадку, якщо він вже був inlineза замовчуванням. Це означає, що замість <div>елемента потрібно використовувати <span>елемент. Це насправді не є величезним недоліком, оскільки семантично <div>це розділення сторінки, а а <span>- лише для покриття прольоту сторінки, тому немає величезної семантичної різниці. Величезною перевагою display:inline-blockє те, що коли інші розробники підтримують ваш код у більш пізній момент, це набагато очевидніше, що display:inline-blockі text-align:right намагається зробити, ніж заява float:leftчи float:rightзаява. Моя улюблена користь від inline-blockпідходу полягає в тому, що він простий у використанні vertical-align: middle, line-heightіtext-align: centerідеально центрувати елементи інтуїтивно зрозумілим чином. У блозі Mozilla я знайшов чудову публікацію в блозі про те, як реалізувати крос-браузерний вбудований блок . Ось сумісність браузера .
Поплавок
Причина того, що використання floatметоду не підходить для компонування вашої сторінки, полягає в тому, що floatвластивість CSS спочатку була призначена лише для того, щоб обгорнути текст навколо зображення (стиль журналу) і, за задумом, не найкраще підходить для цілей загального розміщення сторінки. При подальшій зміні плаваючих елементів іноді виникнуть проблеми з позиціонуванням, оскільки вони не в потоці сторінки . Ще один недолік полягає в тому, що він, як правило, вимагає чіткого виправлення, інакше він може порушити аспекти сторінки. Очищення вимагає додавання елемента після плаваючих елементів, щоб не допустити згортання їх батьків навколо них, що перетинає семантичну лінію між розділенням стилю від вмісту і, таким чином, є антидіаграмою у веб-розробці .
Будь-які проблеми з пробілом, згадані у посиланні вище, легко можна виправити за допомогою white-spaceвластивості CSS.
Редагувати:
SitePoint - дуже надійне джерело для консультацій з веб-дизайну, і вони, схоже, мають таку саму думку, що і я:
Якщо ви не знайомі з макетами CSS, вам пробачать думати, що використання CSS-плавців у образних способах - це висота майстерності. Якщо ви спожили стільки навчальних посібників з компонування CSS, ви можете припустити, що освоєння плавців - це обряд проходження. Вас осліпить винахідливість, вражена складністю, і ви отримаєте відчуття досягнення, коли нарешті зрозумієте, як працюють поплавки.
Не обманюйте. Ти промиваєш мозок.
http://www.sitepoint.com/give-floats-the-flick-in-css-layouts/
Оновлення 2015 року - Flexbox є хорошою альтернативою для сучасних браузерів :
.container {
display: flex; /* or inline-flex */
}
.item {
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}
Більше інформації
Оновлення 21 грудня 2016 року
Bootstrap 4 видаляє підтримку IE9, і, таким чином, позбавляється плавців з рядків і працює повний Flexbox.
Затягнути запит # 21389
inline, ніinline-block. Але перший з них пов’язаний добре: stackoverflow.com/a/11823622/918414