Как сделать контейнер в html
Чтобы создать контейнер в HTML, нужно использовать тег . Этот тег не имеет своего собственного стиля, но вы можете добавить стили, используя атрибут class или id .
Пример создания контейнера с классом «container»:
class="container">
Вы можете добавить стили для этого контейнера в своем файле CSS, например:
.container width: 80%; margin: 0 auto; padding: 20px; background-color: #f2f2f2; >
Этот код задаст ширину контейнера в 80% от родительского элемента, задаст отступы сверху и снизу в 20 пикселей, а также задаст цвет фона.
Также, вместо класса можно использовать атрибут id , который должен быть уникальным на странице:
id="container">
И стили для этого контейнера нужно будет задать так:
#container /* Стили */ >
Блочным называется элемент, который отображается на веб-странице в виде прямоугольника. Такой элемент занимает всю доступную ширину, высота элемента определяется его содержимым, и он всегда начинается с новой строки. К блочным элементам относятся контейнеры , ,
и др.
Допускается вкладывать один блочный элемент внутрь другого, а также размещать внутри них встроенные элементы ( , например). Запрещено добавлять внутрь встроенных элементов блочные (пример 1).
Пример 1. Использование блочных элементов
Блочные элементы Lorem ipsum dolor sit amet.
Ut wisi enim ad minim veniam
В данном примере абзац (тег
) вставляется внутрь контейнера , а ссылка (тег ) — в заголовок
. Кстати, ошибкой будет поступить наоборот — добавить
в контейнер (
Ut wisi
Ut wisi
), поскольку тег не относится к блочным элементам.
Вкладывание блочных тегов внутрь встроенных элементов характерно, скорее, для новичков, которые еще не понимают разницы между ними. К тому же браузеры научились отлавливать подобные ошибки и отображают код более-менее корректно. Тем не менее, рекомендуем придерживаться в этом вопросе спецификации, чтобы выводить веб-страницу без ошибок.
Ширина блочных элементов
По умолчанию ширина блока вычисляется автоматически и занимает все доступное пространство. Здесь следует оговорить, что под этим подразумевается. Например, если тег в коде документа присутствует один, то он занимает всю свободную ширину окна браузера и ширина блока будет равна 100%. Стоит поместить один тег внутрь другого, как ширина внутреннего тега начинает исчисляться относительно его родителя, т.е. внешнего контейнера.
Некоторые браузеры достаточно свободно трактуют понятие ширины, хотя в спецификации CSS четко указано, что ширина складывается из суммы следующих параметров: ширины самого блока ( width ), отступов ( margin ), полей ( padding ) и границ ( border ). В примере 2 показано создание слоя, в котором присутствуют все эти компоненты.
Пример 2. Ширина слоя
Ширина Lorem ipsum dolor sit amet.
В результате данного примера получим слой шириной 342 пиксела. На рис. 1 показано, из чего складывается ширина слоя.

Рис 1. Ширина блочного элемента
В том случае когда < !DOCTYPE>в коде не указан, браузер Internet Explorer за ширину всего блока принимает значение свойства width .
Разберем еще один пример связанный с шириной. По умолчанию ширина слоя задается как auto , это позволяет вписывать слой в окно браузера, не принимая в расчет значения установленных полей. Если изменить ширину на 100%, то при добавлении значения отступов, полей или границ неминуемо появится горизонтальная полоса прокрутки.
Для получения универсального результата существует несколько подходов. В примере 3 продемонстрировано создание трех слоев, ширина которых определяется в процентах.
Пример 3. Ширина слоя в процентах
Ширина
Результат примера показан на рис. 2.

Рис. 2. Отображение ширины слоев в браузере
Ширина первого слоя в данном примере ( layer1 ) установлена как 100%, что приводит к отображению горизонтальной полосы прокрутки. Для второго слоя ( layer2 ) ширина также задана 100%, но поля определяются для внутреннего абзаца (тег
). За счет этого ширина слоя во всех браузерах будет одинаковой. К третьему слою ( layer3 ) вообще не применяется свойство width , поэтому оно определяется по умолчанию — auto . В таком случае слой будет занимать всю ширину окна браузера без всяких горизонтальных полос.
Способ установки ширины зависит от применяемого макета и выбора разработчика, но в любом случае нужно учитывать особенности блочных элементов и создавать универсальный код.
Высота
С высотой блочных элементов дело обстоит аналогично ширине. Браузер за высоту слоя принимает значение свойства height и добавляет к нему еще значение margin , padding и border . Если высота слоя не установлена явно, то она вычисляется автоматически исходя из объема содержимого.
Допустим, для слоя установлена высота в пикселах, а содержимое слоя однозначно превышает указанную высоту (пример 4).
Пример 4. Высота слоя
Высота
Результат данного примера продемонстрирован на рис. 3.

Рис. 3. Высота блока в разных браузерах
Видно, что браузер оставляет высоту неизменной, за счет чего текст не помещается в блоке и накладывается поверх слоя.
Цвет фона
Цвет фона элемента проще всего устанавливать через универсальное свойство background . Фоном при этом заливается область, которая определяется значениями width , height и padding (рис. 4).

Рис. 4. Область слоя, которая заполняется фоновым цветом
Таким образом, margin не принимает участия в формировании цветной области.
Границы
Из-за разницы в подходах браузеров при формировании блочных элементов наблюдается и различие при отображении границ. Браузер Internet Explorer 7 проводит рамку внутри блока, а Firefox — снаружи. Но если использовать фоновую заливку, то увидим совершенно противоположную картину (рис. 5). А все потому, что Firefox (Opera) цвет фона устанавливает по внешнему краю границы, а Internet Explorer — по внутренней. Начиная с версии 8.0 Internet Explorer поменял стиль отображения рамки, она проводится внутри блока, как и в Firefox.

а. Internet Explorer 7

б. Firefox, Internet Explorer 8+

Рис. 5. Отображение рамки в браузерах
В примере 5 показано, как создать код для получения подобной границы.
Пример 5. Пунктирная рамка
Рамка
Различия в подходе браузеров при рисовании границ заметны только на цветном фоне и пунктирных линиях. Для сплошной рамки вид слоя в браузерах будет практически одинаковым.
Резюме
Блочные элементы выступают в качестве основного строительного материала при верстке веб-страниц. Такие элементы характерны тем, что всегда начинаются с новой строки и занимают всю доступную ширину области, в которой располагаются.
Спецификация CSS определяет, что высота и ширина элемента определяется не только значениями height и width , но к ним еще плюсуется значение полей, отступов и границ. Браузеры в этом плане делятся на две части: одни поддерживают в этом вопросе спецификацию, другие же ее игнорируют и поступают по-своему. Это создает трудности разработчикам, которые желают делать универсальные веб-страницы. Можно только посоветовать ограниченно использовать свойства width и height , поскольку по умолчанию браузер применяет аргумент auto , который заставляет настраивать размеры элемента автоматически.
Флекс-контейнер — CSS: Основы Flex
Главной частью концепции Flex является контейнер. Внутри него дочерние элементы начинают подчиняться новой логике, ее мы рассмотрели в прошлом уроке.
Display
Чтобы создать контейнер, используется свойство display со значением flex . Сам контейнер внешне поведет себя как блочный элемент — будет занимать всю доступную ширину. Следовательно, остальные элементы будут отображаться выше или ниже него, в зависимости от их расположения в потоке документа.
Другим возможным значением свойства display является inline-flex . Внутри такого контейнера все будет происходить точно так же, как и при значении flex , но сам контейнер по поведению будет напоминать строчный элемент — он займет ровно столько пространства, сколько необходимо. Другие элементы в потоке смогут обтекать его при необходимости и наличии свободного пространства.
Flex Direction
Что же мы можем сделать с контейнером? Одна из распространенных задач с использованием флекса — перестраивание элементов с оси x на ось y. Это очень частая ситуация при создании мобильных версий сайта. Предположим, что есть флекс-контейнер с тремя дочерними элементами, которые в обычной ситуации отображаются в одну линию.
Используя правило flex-direction , мы можем изменить главную ось для отображения элементов. Правило flex-direction принимает одно из нескольких значений:
- column. Значение устанавливает в качестве главной оси ось y. Таким образом меняется не только направление, но и правила выравнивания элементов, которые мы изучим в следующих уроках. В качестве поперечной оси начинает выступать ось x. Данное поведение похоже на то, как если бы систему координат повернули на 90 градусов.
- column-reverse. Данное значение также выставляет в качестве главной оси ось y, но как бы «переворачивает ее». Элементы в потоке начинают отображаться с конца.
- row. Стандартное отображение. В качестве главной оси выступает ось x.
- row-reverse. Элементы выстраиваются по оси x, но с конца оси. Элементы также меняют свой порядок.
Самостоятельное задание
Создайте, используя CodePen , флекс-контейнер, внутри которого создайте еще один флекс-контейнер. Установите им разные значения flex-direction , чтобы увидеть, как элементы внутри этих контейнеров будут отображены в браузере.
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях: