Как сделать два блока рядом

Блог Vaden Pro

Способы размещения блоков горизонтально

Часто на практике приходится решать задачу группирования и выравнивания контента средствами CSS. Сегодня мы рассмотрим основные способы размещения элементов в горизонтальный ряд.

Материал данной статьи призван помочь начинающим веб-дизайнерам в освоении приемов верстки web-страниц.

Как сделать два блока рядом. Смотреть фото Как сделать два блока рядом. Смотреть картинку Как сделать два блока рядом. Картинка про Как сделать два блока рядом. Фото Как сделать два блока рядом

Из чего выбрать или методы

Существует несколько способов расположения структурных элементов в ряд в горизонтальной плоскости. Наиболее полезными, с точки зрения практического применения, являются:

Каждый из них имеет свои преимущества, области применения и недостатки. Рассмотрим их по порядку.

«Для рывка» или немного теории

Все структурные элементы HTML можно условно разделить на:

Инлайновые (встроенные) – типа img, span и им подобные. У нас нет возможности менять их фон и задавать им произвольные линейные размеры.

Блочные – занимающие всю ширину родительского блока, всегда начинаются с новой строки – p, h, div.

Наглядный пример встроенных и блочных структур приведен ниже:

Как сделать два блока рядом. Смотреть фото Как сделать два блока рядом. Смотреть картинку Как сделать два блока рядом. Картинка про Как сделать два блока рядом. Фото Как сделать два блока рядом

Метод «Float»

Как уже известно (см. выше), блочный элемент размещается с новой строки вне зависимости от заданной ему ширины (width). По этому, уменьшая горизонтальный размер div-а, в рядок блочки не построить.

Наиболее популярный (особенно среди начинающих верстальщиков), метод решения это использование свойства float.

CSS свойство float обрело большую популярность и практическую ценность после перехода от табличного способа верстки к блочному.

Float: left (right) трансформирует блочный элемент в плавающий, выравнивает по левому (правому) краю родительского блока и устанавливает обтекание справа (слева) текстом и другими элементами.

Для примера, создадим четыре блока, которые нужно разместить в ряд:

И внешнюю таблицу стилей с следующим содержимым:

В результате получаем четыре блока, расположенные в горизонтальный ряд и выровненные по левому краю родительского блока:

Как сделать два блока рядом. Смотреть фото Как сделать два блока рядом. Смотреть картинку Как сделать два блока рядом. Картинка про Как сделать два блока рядом. Фото Как сделать два блока рядом

Иногда на практике бывает необходимо выровнять блоки по правому краю родительского элемента. Изменим обтекание блоков в предыдущем примере:

Как сделать два блока рядом. Смотреть фото Как сделать два блока рядом. Смотреть картинку Как сделать два блока рядом. Картинка про Как сделать два блока рядом. Фото Как сделать два блока рядом

Для того, чтобы прервать обтекание элементов с какого-то конкретного места, используйте строчку:

В рассмотренном выше примере расстояния между блоками мы задавали при помощи отступа margin-right. Но что делать, если у вас при верстке страницы возникла задача: разместить блоки в ряд, центрировать их, да и еще чтобы отступы были только между ними, но никак не снаружи?

Алгоритм действий следующий.

В результате получаем такую картину:

Как сделать два блока рядом. Смотреть фото Как сделать два блока рядом. Смотреть картинку Как сделать два блока рядом. Картинка про Как сделать два блока рядом. Фото Как сделать два блока рядом

Ну что же, всех практических ситуаций не рассмотришь, по этому перейдем к общим особенностям.

Как сделать два блока рядом. Смотреть фото Как сделать два блока рядом. Смотреть картинку Как сделать два блока рядом. Картинка про Как сделать два блока рядом. Фото Как сделать два блока рядом

Метод «Inline-block»

Как строчные так и блочные элементы имеют свои преимущества и недостатки в контексте каждой конкретной решаемой задачи. А что если объединить их преимущества?

Встречайте, гвоздь программы – свойство display: inline-block.

display: inline-block генерирует блочно-строчный элемент, который по сути является строчным, но сохраняет блочные свойства – позволяет изменять линейные размеры, задавать поля, отступы и т.д.

Блочно-строчный элемент имеет следующие свойства:

Рассмотрим пример создания простого навигационного меню, содержащего картинку и ссылку.

В результате получаем такую менюшку:

Как сделать два блока рядом. Смотреть фото Как сделать два блока рядом. Смотреть картинку Как сделать два блока рядом. Картинка про Как сделать два блока рядом. Фото Как сделать два блока рядом

Как видим, получилось кривовато. Но расстраиваться мы не намерены, по-этому применяем к нашим дивам CSS свойство vertical-align (подробнее см. ниже):

Теперь наша навигационная панель выровнялась по верхней линии:

Как сделать два блока рядом. Смотреть фото Как сделать два блока рядом. Смотреть картинку Как сделать два блока рядом. Картинка про Как сделать два блока рядом. Фото Как сделать два блока рядом

Конечно, приведенный пример является примитивным, но я уверен, что на его основе вы сможете создать настоящий шедевр.

Результатом рендеринга такого кода будет следующая картина:

Как сделать два блока рядом. Смотреть фото Как сделать два блока рядом. Смотреть картинку Как сделать два блока рядом. Картинка про Как сделать два блока рядом. Фото Как сделать два блока рядом

Есть несколько способов убрать зазоры:

Результатом применения любого из выше перечисленных приемов будет следующая структура:

Как сделать два блока рядом. Смотреть фото Как сделать два блока рядом. Смотреть картинку Как сделать два блока рядом. Картинка про Как сделать два блока рядом. Фото Как сделать два блока рядом

Метод «Table»

Табличный подход долгое время был стандартом верстки, что в первую очередь объяснялось простотой и интуитивной понятностью разметки. Скорее всего, именно это и послужило причиной появления табличного форматирования в CSS.

Свойства display: table (table-cell, inline-table), позволяют выполнять табличное форматирование элементов без применения HTML таблиц.

Для горизонтального размещения блоков нам понадобится родительский элемент, имеющий свойство display: table, и дочерние элементы (ячейки), имеющие свойство display: table-cell:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *