Что такое блочная модель css

2.2. CSS блочная модель

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

CSS блочная модель в деталях

1. Определение блочной модели

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

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

2. Отступы элемента

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

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

2.1. Схлопывание вертикальных отступов

Смежные вертикальные отступы двух или более элементов уровня блока margin объединяются (перекрываются). При этом ширина общего отступа равна ширине большего из исходных. Исключение составляют отступы корневого элемента, которые не схлопываются.

margin-bottom: 30px; width: 100%; display: inline-block;

margin-top: 15px; width: 100%; display: inline-block;

Объединение отступов выполняется только для блочных элементов в нормальном потоке документа. Если среди схлопывающихся отступов есть отрицательные значения, то браузер добавит отрицательное значение к положительному, а полученный результат и будет расстоянием между элементами. Если положительных отступов нет, то максимум абсолютных значений соседних отступов вычитается из нуля.

Отступы не схлопываются:

2.2. Выпадение вертикальных отступов

2.3. Физические свойства отступов: свойства margin-top, margin-right, margin-bottom, margin-left

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

Свойства не наследуются.

2.4. Краткая запись отступов: свойство margin

Если существует только одно значение, оно применяется ко всем сторонам.

Если два — верхний и нижний отступы устанавливаются на первое значение, а правый и левый — устанавливаются на второе.

Если имеется три значения — верхний отступ устанавливается на первое значение, левый и правый — на второе, а нижний — на третье.

Если есть четыре значения — они применяются сверху, справа, снизу и слева соответственно.

3. Поля элемента

Область полей представляет собой пространство между краем области содержимого и рамкой элемента. Свойства полей определяют толщину их области. Применяются ко всем элементам, кроме внутренних элементов таблицы (за исключением ячеек таблицы). Сокращенное свойство padding задает поля для всех четырех сторон, а подсвойства устанавливают только их соответствующие стороны.

Фоны элемента по умолчанию закрашивают поля элемента и пространство под его рамкой. Это поведение можно настроить с помощью свойств background-origin и background-clip.

3.1. Физические свойства полей: свойства padding-top, padding-right, padding-bottom, padding-left

Свойства устанавливают верхнее, правое, нижнее и левое поля соответственно. Отрицательные значения недопустимы.

Свойства не наследуются.

3.2. Краткая запись полей: свойство padding

Если существует только одно значение, оно применяется ко всем сторонам.

Если есть два значения, верхнее и нижнее поля устанавливаются на первое значение, а правое и левое — на второе.

Если имеется три значения, верхнее поле устанавливается на первое значение, левое и правое — на второе, а нижнее — на третье.

Если есть четыре значения — они применяются сверху, справа, снизу и слева соответственно.

4. Рамки элемента

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

Источник

Основы CSS: блочная модель

Авторизуйтесь

Основы CSS: блочная модель

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

Один из лучших способов внести изменения во внешний вид своего сайта — похимичить с CSS, с помощью которого можно поменять всё: от цветов сайта до шрифтов и фоновых изображений.

В этой статье для начинающих мы разбёремся, что такое блочная модель и как она работает. Сначала мы пройдёмся по теоретической части, а затем применим её на практике.

Блоки — они повсюду!

Первое, что нужно понять для эффективного использования CSS, — всё, что вы видите на странице, состоит из прямоугольников. Каждый сайт представляет собой ничего более, чем набор прямоугольных блоков, расположенных рядом, сверху, снизу и внутри друг друга.

Заголовок? Прямоугольник. Боковая панель? Прямоугольник. Изображение? Тоже прямоугольник. Само собой, обычно мы называем их не прямоугольниками, а HTML-элементами, которые бывают разных типов.

Строчные и блочные элементы

Есть два типа HTML-элементов: строчные и блочные. Между ними есть разительные отличия, которые также влияют на использование блочной модели CSS.

13–15 декабря, Онлайн, Беcплатно

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

Этот цитатный блок — пример блочного элемента. Как вы видите по его фону, он занимает всю ширину контейнера, а не растягивается только до тех мест, где есть текст.

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

Если вы пользуетесь WordPress, то вы, скорее всего, очень хорошо знакомы со строчными элементами, даже если вы об этом не знаете. Когда вы при написании текста выделяете его жирным или курсивом, WordPress добавляет . и . вокруг него, чтобы добиться нужного эффекта.

Просто откройте вкладку Текст в режиме редактора для просмотра кода содержимого и вы всё увидите:

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

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

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

Так что это за блочная модель?

Возможно, вы об этом не знаете, но у каждого HTML-элемента есть блок, который его окружает. Этот блок состоит из нескольких слоёв, которыми можно независимо управлять с помощью CSS. Это позволяет разместить элементы относительно друг друга и оформить их разными способами.

Вот из чего состоят слои:

Вот вам, собственно, и блочная модель CSS. Она становится ещё понятнее, если взглянуть на эту диаграмму:

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

Так как у каждого из слоёв есть соответствующее CSS-свойство, блочная модель представляет основные способы определения размера, положения и внешнего вида HTML-элемента. Как следствие, вы получаете возможность сильно изменить содержимое страницы. Рассмотрим несколько примеров, чтобы понять, как это работает.

Примеры использования блочной модели

Создадим простую страницу с блочным элементом:

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

Для блока мы определили цвета фона, чтобы вы могли видеть, как он растягивается по экрану. Это позволит лучше понять то, что будет происходить дальше. Вот соответствующий CSS:

Давайте внесём несколько изменений.

Изменяем ширину

Для него можно установить разные значения. Мы можем использовать фиксированную ширину вроде пикселей или пропорциональное значение вроде процентов. Последний вариант особенно важен для штук вроде адаптивного дизайна. Однако для простоты обойдёмся пикселями.

Добавляем новое свойство в стили:

После перезагрузки страницы вы должны увидеть следующее:

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

Вы сразу заметите, как теперь ограничено растягивание div вправо. Также, как видите, его высота автоматически изменяется, чтобы уместить внутренний текст. Давайте ещё увеличим её.

Увеличиваем высоту элемента через CSS

С высотой мы можем делать всё то же самое, что и с шириной: устанавливать фиксированное или пропорциональное значение. Добавляем в стили:

В итоге страница выглядит так:

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

Как видите, элемент принял нужную нам форму, так как мы установили одинаковые значения для высоты и ширины.

Знакомимся с границами

В принципе, достаточно просто определить толщину границ. Тем не менее, в большинстве случаев результат будет лучше при определении всех трёх значений. Меняем CSS:

И получаем результат:

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

Выглядит здорово, не так ли 🙂

Добавляем отступы

Одна из проблем, которая выделяется при взгляде на наш пример, заключается в том, что текст начинается прямо с границы элемента. Из-за этого его сложно читать, да и выглядит не очень приятно. К счастью, свойство padding позволяет это исправить:

Вот как это отразится на результате:

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

Отступы — одно из немногих свойств в этом списке, которые можно применить к строчным элементам. Однако вы рискуете вторгнуться в пределы верхних и нижних отступов других элементов, так что аккуратнее с этим.

Добавляем поля

Вот мы и добрались до полей, которые определяют расстояние между элементами.

Добавим margin в стили:

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

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

Поля частично применимы к строчным элементам, но только к боковым сторонам.

Немного о размерах элементов

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

Любые границы, отступы и поля также вносят свой вклад в горизонтальный размер элемента. То же касается и высоты. В нашем случае также учитываются все слои блочной модели.

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

Тем не менее, поля всё ещё влияют на общий размер элемента. Держите это в голове, когда будете работать над разметкой страницы.

Подводим итог

Вот вы и изучили основы блочной модели CSS. Эти знания помогут вам лучше понять, как работают сайты. С блочной моделью проще изменить внешний вид страницы и её структуру как душе угодно.

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

Источник

Свойства блочной модели CSS. Объяснение с примерами

Приветствую всех жителей хабравиля! Сегодня я подготовил для вас материал по основам по блочной модели CSS. Безусловно, многие из вас знают о чём идёт речь, но сегодня я постараюсь объяснить прописные истины более понятно и наглядно, что поможет вам создавать веб-сайты, с идеально подходящими друг другу элементами (с точностью до пикселя), и научит более точно использовать свойства размеров, полей, отступов и границ. Итак, всех приглашаю под кат и погнали!

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

Оглавление

Зачем изучать блочную модель CSS?

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

Блочная модель CSS состоит из свойств: box-sizing, padding и margin. Если их не использовать, то получим что-то похожее ​

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssВеб-сайт без полей и отступов

Но если вы будете правильно использовать свойства блочной модели, ваш сайт будет выглядеть так ​

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssВеб-сайт, использующий свойства блочной модели

В этой статье мы поговорим о том, как использовать эти свойства:

Как использовать свойства блочной модели CSS

Давайте посмотрим на несколько примеров, где мы можем использовать свойства блочной модели CSS. Мы собираемся проанализировать сайт, показанный выше. ​

Давайте внимательнее посмотрим на навигационную панель (navbar). Вы можете заметить разницу между примером, в котором используется свойство padding, и примером, в котором его нет:

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssЭлементы навигационной панели, использующие свойство padding

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssРаздел содержимого, использующий свойство padding

Структура блочной модели CSS

Говоря о блочной модели, стоит воспринимать её как луковицу. И эта «луковица» имеет 4 слоя:

1 слой: Content

2 слой: Padding

3 слой: Border

4 слой: Margin

1 слой блочной модели: Content

В HTML все ведет себя как ящик с контентом. Давайте вставим контент с изображением котенка. ​

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssПервый слой

2 слой блочной модели: Padding

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssВторой слой

3 слой блочной модели: Border

4 слой блочной модели: Margin

Следующим и последним слоем блочной модели CSS является слой полей. Он обертывает наш контент + отступ + границу следующим образом

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssЧетвёртый слой

Итак, давайте посмотрим, как эти свойства работают в проекте.

Как настроить проект

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

Это руководство подходит для всех, в том числе для новичков. Если вы хотите писать код, выполните следующие действия.

Откройте VS Code или Codepen.io и напишите этот код ​ внутри тега body:

Очистите стили нашего браузера по умолчанию ​

Теперь давайте стилизуем наш блок ​

Все готово, приступим к программированию! ​

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

Свойство Padding

Но сначала давайте обсудим практическое использование свойства padding. Затем мы увидим, как использовать это свойство.

Обычно я использую отступы, чтобы оставить пространство между содержимым. Посмотрите на эту навигационную панель

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssЭлементы навигационной панели, использующие свойство padding

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssраздел содержимого с использованием свойства заполнения

Как использовать свойство padding в CSS

Ниже представлены названия четырех свойств заполнения:

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

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssВторой слой

Чтобы воссоздать результаты, указанные выше, ​ напишите этот код в свой CSS: ​

Откроем консоль разработчика и перейдем в вычисляемый раздел:

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

Давайте попробуем добавить отступ только к одной стороне нашего контента (только с правой стороны):

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssсвойство padding-right

Чтобы воссоздать результаты, указанные выше, ​ напишите этот код в свой CSS: ​

Теперь откройте вычисляемый раздел в консоли разработчика ​

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

Свойство Border

Обычно вы будете использовать свойство border при создании кнопок. Вот демонстрация GIF ​

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssКнопки, использующие свойство Border

Обратите внимание, как появляется белая рамка вокруг кнопки, когда наводится указатель мыши на кнопку.

Как использовать свойство границы в CSS

Есть три важных параметра свойства границы:

border style: solid (сплошная линия) / dotted («точечная» линия) / dashed (пунктир)

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssСинтаксис свойства границы

Как я перечислил выше, существует три стиля свойства границы. В этом примере мы будем использовать пунктирный стиль:

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

Чтобы воссоздать приведенные выше результаты, напишите этот код в своем CSS: ​

Откроем консоль и посмотрим расчеты блочной модели:

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

Свойство Margin

Обычно я использую свойство margin, чтобы добавить отступ между моим контентом и экраном на макете рабочего стола. Посмотрите на эту гифку:

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

Обратите внимание, что я добавил поля к левому и правому краям веб-сайта выше ​

Вот еще один пример использования свойства margin: ​

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

Как использовать свойство margin в CSS

Margin имеет всего четыре свойства поля:

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

Давайте добавим отступ к нашему контенту. Весь наш набор смещается из-за margin, как в этом GIF:

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssСмещение

Чтобы воссоздать приведенные выше результаты, напишите этот код в своем CSS: ​

Можем еще раз проверить расчеты: ​

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

Давайте попробуем добавить поле только к одной стороне нашего контента (только левой стороне):

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssСвойство margin-left

Чтобы воссоздать результаты выше, напишите этот код в своем CSS ​

На консоли мы видим, что поле в 50 пикселей применено только к левой стороне

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

Свойство box-sizing

Это свойство определяет, как будут рассчитываться поля, отступы и границы. Есть три типа вычислений (можно называть их свойствами):

Примечание:

Мы не будем обсуждать padding-box, поскольку его поддерживает только Firefox, и он используется не очень часто.

В чем разница между content-box и border-box в CSS?

И border-box, и content-box работают одинаково. Посмотрите на эти изображения: ​

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssБлоки, использующие свойство border-box Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssБлоки, использующие свойство content-box

Итак, в чем здесь главное отличие? Разница заметна, когда мы добавляем поля, границу или отступы к нашим блокам.

Когда мы используем box-sizing: content-box, который является значением по умолчанию, он добавит поля, отступы и границы за пределами поля, например: ​

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

Вы также можете увидеть расчеты здесь: ​

Что такое блочная модель css. Смотреть фото Что такое блочная модель css. Смотреть картинку Что такое блочная модель css. Картинка про Что такое блочная модель css. Фото Что такое блочная модель cssРасчеты с content-box

Это означает, что все может выйти из-под контроля, и вы можете получить неожиданный результат. Это означает, что при таком подходе, будет сложно создавать адаптивные веб-сайты. Вместо этого всегда используйте свойство box-sizing: border-box.

Но когда мы используем свойство box-sizing: border-box, оно добавит поля, отступы и границы вовнутрь блока, например: ​

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

Заключение

Вот собственно и всё. Для желающих оставлю ссылку на видео-инструкцию к данному уроку от автора (Джоя Шахеба):

Источник

Блочная модель

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

Рис. 3.1. Свойства, формирующие блочный элемент

Для наглядности свойства блока можно представить в виде матрёшек (рис. 3.2). Любую маленькую матрёшку можно вставить в более крупную матрёшку, но никак не наоборот.

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

Полем будем называть расстояние от внутреннего края границы или края блока до воображаемого прямоугольника, ограничивающего содержимое блока. Из-за того, что значения полей могут различаться на каждой стороне, применяют выражения «верхнее поле» или «поле сверху», и им подобные для других сторон. Обозначение «поля» следует понимать как одинаковое значение полей для всех сторон. Основное предназначение полей — создать пустое пространство вокруг содержимого блочного элемента, например текста, чтобы он не прилегал плотно к краю элемента. Использование полей повышает читабельность текста и улучшает внешний вид страницы. В примере 3.1 показано использование полей для оформления текста.

Пример 3.1.Использование свойства padding

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

Результат примера показан на рис. 3.3.

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

Рис. 3.3. Поля вокруг текста

Значения полей не могут быть отрицательными.

Границы

Пример 3.2. Красная пунктирная линия

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

Результат данного примера показан на рис. 3.4.

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

Рис. 3.4. Линия возле текста

Отступы

Отступом будем называть пустое пространство от внешнего края границы, полей или содержимого блока. Как уже упоминалось, границы с полями не обязательны и могут отсутствовать, так что способ формирования отступов зависит от ситуации. Как и в случае с полями, применяют выражения «верхний отступ» или «отступ сверху», и им подобные для других сторон. Обозначение «отступы» следует понимать как одинаковое значение отступов для всех сторон.

Для отступов характерны следующие особенности.

В примере 3.3 показано схлопывание отступов и их прозрачность.

Пример 3.3. Использование отступов

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

Результат данного примера показан на рис. 3.5. Обратите внимание, что расстояние между блоками равно 20 пикселов, а не 40, которые получаются суммированием верхнего и нижнего отступа у блоков. Это происходит за счёт эффекта схлопывания, при котором близлежащие отступы объединяются.

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

Рис. 3.5. Отступы в элементе

Ширина блока

Ширина блока это комплексная величина и складывается из нескольких значений свойств:

Как уже упоминалось, какие-то свойства могут отсутствовать и в этом случае на ширину не оказывают влияние. Общая ширина показана на рис. 3.6 в виде чёрной пунктирной линии.

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

Рис. 3.6. Ширина блока

Допустим, для слоя написан следующий стиль.

Ширина блока согласно этой записи будет равна 342 пиксела, эта величина получается складыванием значения ширины контента плюс отступ слева, граница слева и поле слева, плюс поле справа, граница справа и отступ справа. Суммируем все числа.

Ширина = 300 + 7 + 7 + 4 + 4 + 10 + 10 = 342

Надо отметить, что блочная модель с формированием ширины несет в себе кучу неудобств. Постоянно приходится заниматься вычислениями, когда требуется задать определенную ширину блока. Также начинаются проблемы при сочетании разных единиц измерения, в частности, процентов и пикселов. Предположим, что ширина контента задана как 90%, если сюда приплюсовать поля и границы, заданные в пикселах, то нельзя вычислить суммарную ширину блока, поскольку проценты напрямую в пикселы не переводятся (в CSS3 так суммировать можно, только поддерживается эта возможность далеко не всеми браузерами). В итоге может получиться так, что общая ширина блока превысит ширину веб-страницы, что приведёт к появлению горизонтальной полосы прокрутки. Выходов из подобной ситуации два — поменять алгоритм блочной модели и воспользоваться вложенными слоями.

Алгоритм блочной модели

Табл. 3.1. Поддержка браузерами свойства box-sizing

БраузерInternet ExplorerChromeOperaSafariFirefox
Версия8.0+2.0+7.0+3.0+1.0+
Свойствоbox-sizing-webkit-box-sizingbox-sizing-webkit-box-sizing-moz-box-sizing

Как видно из таблицы, в свойствах разброд и шатание, поэтому придется делать гибрид и указывать все три свойства одновременно (пример 3.4).

Пример 3.4. Ширина блока

XHTML 1.0 CSS 3 IE 7 IE 8+ Cr Op Sa Fx

Вложенные слои

Использование свойства box-sizing всем хорошо, кроме того, что не работает в старых версиях IE. Если вы верстаете сайт с учетом IE7 и IE6, вам подойдёт старый проверенный метод с вложением слоев. Идея простая — для внешнего блочного элемента задаётся только необходимая ширина, а для вложенного блока всё остальное — поля, границы и отступы. Поскольку по умолчанию ширина блока равна доступной ширине родителя, получится, что блоки в каком-то смысле накладываются друг на друга, при этом фактическая ширина такого комбинированного элемента будет чётко задана. В примере 3.5 показано использование вложенных слоев.

Пример 3.5. Вложенные слои

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

Результат данного примера показан на рис. 3.7.

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

Рис. 3.7. Ширина блока в процентах

Преимуществом вложенных слоев является использование отступов ( box-sizing их не учитывает), универсальность метода, также то, что фон по желанию можно добавлять к одному или другому слою. Тем самым несколько меняется внешний вид элементов, это особенно актуально при включении фоновых рисунков. Из недостатков метода можно отметить добавление дополнительного блока, который усложняет структуру кода, особенно при частом применении метода. Но это можно считать мелочью по сравнению с преимуществами.

Высота блока

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

Рис. 3.8. Высота блока

Пример 3.6. Высота блока

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

Результат данного примера показан на рис. 3.9.

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

Рис. 3.9. Высота блока в процентах

С высотой связана ещё одна особенность — при превышении содержимого блока его размеров при заданной высоте, содержимое начинается отображаться поверх блока (рис. 3.10).

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

Рис. 3.10. Превышение размеров блока

Код, приводящий к подобному результату, приведен в примере 3.7.

Пример 3.7. Превышение размеров блока

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

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

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

Рис. 11. Использование свойства overflow

Если задать одновременно цвет фона и пунктирную границу блока, то становится заметно, что граница проходит внутри цветной области. Правда в разных браузерах наблюдается разночтение, в частности Internet Explorer до версии 7.0 включительно содержит ошибку, при которой фон выводится по внутреннему краю границы (рис. 12в). Начиная с версии 8.0 эта ошибка исправлена, и фон выводится по стандартам (рис. 12г). Браузеры Opera (рис. 12а), Firefox (12б), Safari и Chrome (рис. 12д) фон выводят правильно. Небольшие различия наблюдаются при отображении пунктирной рамки, но они не влияют на блочную модель.

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

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

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

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

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

Рис. 12. Отображение фона в браузере

В примере 3.8 показано, как создать код для получения подобной границы.

Пример 3.8. Фон и граница

XHTML 1.0 CSS 2.1 IE 7 IE 8+ Cr Op Sa Fx

Различия в подходе браузеров при рисовании границ заметны только на цветном фоне и пунктирных линиях. Для сплошной рамки вид блока в браузерах будет практически одинаковым.

Источник

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

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