Блочные и строчные элементы. Часть 2
Продолжим изучение темы блочные и строчные элементы. Если пропустили прошлую статью, то вот ссылка на нее: Блочные и строчные элементы. Часть 1
Модель визуального форматирования CSS в деталях
Содержание:
Часть 1
1. Модель визуального форматирования
2. Блочные элементы и блочные контейнеры
3. Строчные элементы и строчные контейнеры
4. Строчно-блочные элементы
5. Ширина содержимого: свойство width
Часть 2
6. Минимальная и максимальная ширина: свойства min-width и max-width
7. Высота содержимого: свойство height
8. Минимальная и максимальная высота: свойства min-height и max-height
9. Расчет высоты строки: свойства line-height и vertical-align
10. Изменение блочной модели: свойство box-sizing
6. Минимальная и максимальная ширина: свойства min-width и max-width
Свойства min-width и max-width позволяют ограничивать ширину содержимого до определенного диапазона. Значения не могут быть отрицательными. Для min-width значение по умолчанию 0, для max-width — none.
Свойства не наследуются.
min-width/max-width
Значения:
- длина - Задает фиксированную минимальную или максимальную используемую ширину.
- % - Указывает процент для определения используемого значения. Процент рассчитывается относительно ширины содержащего блока.
- none - Означает отсутствие ограничений ширины блока.
- inherit Наследует значение свойства от родительского элемента.
Синтаксис
CSS
min-width: 100px; min-width: 10em; min-width: 50%; min-width: inherit;
CSS
max-width: 500px; max-width: 20em; max-width: 80%; max-width: none; max-width: inherit;
7. Высота содержимого: свойство height
Свойство height определяет высоту содержимого блока. Это свойство не применяется к незамещаемым строчным элементам. Значения длины не могут быть отрицательными.
Свойство не наследуется.
height
Значения:
- длина - Высота области содержимого задается в единицах длины.
- % - Задает высоту в процентах. Процент рассчитывается относительно высоты содержащего блока. Если высота содержащего блока не указана явно (то есть зависит от высоты содержимого) и этот элемент не является абсолютно позиционированным, значение вычисляется как auto. Для абсолютно позиционированных элементов процент вычисляется с учетом высоты области отступов padding содержащего блока.
- auto - Высота зависит от значений других свойств. Значение по умолчанию.
- inherit - Наследует значение свойства от родительского элемента.
Синтаксис
CSS
height: 100px; height: 10em; height: 50%; height: auto; width: inherit;
8. Минимальная и максимальная высота: свойства min-height и max-height
Иногда полезно ограничить высоту элементов определенным диапазоном. Свойства min-height и max-height предлагают эту функциональность.
Свойства не наследуются.
min-height/max-height
Значения:
- длина - Задает фиксированную минимальную или максимальную вычисленную высоту в единицах длины. Значения не могут быть отрицательными.
- % - Указывает процент для определения используемого значения. Процент рассчитывается относительно высоты содержащего блока. Если высота содержащего блока не указана явно (т.е. зависит от высоты содержимого) и этот элемент не является абсолютно позиционированным, процентное значение обрабатывается как 0 для min-height или none для max-height.
- none - Отсутствие ограничений высоты блока, только для max-height.
- inherit - Наследует значение свойства от родительского элемента.
Синтаксис
CSS
min-height: 100px; min-height: 2em; min-height: 50%; min-height: inherit;
CSS
max-height: 500px; max-height: 20em; max-height: 80%; max-height: none; max-height: inherit;
9. Расчет высоты строки: свойства line-height и vertical-align
Как описано выше, пользовательские агенты передают блоки встроенного уровня в вертикальный стек линейных блоков. Высота линейного блока определяется следующим образом:
- Высота каждого встроенного прямоугольника в линейном блоке вычисляется. Для замещаемых, inline-block и inline-table элементов это высота их области поля (margin box)
- Блоки уровня строки выравниваются вертикально в соответствии со значением свойства vertical-align. Если они выровнены по верху или по низу, они должны быть выровнены так, чтобы минимизировать высоту линейного блока.
Высота линейного блока — это расстояние между самой верхней верхней и самой нижней частью блока. Пустые встроенные элементы генерируют пустые встроенные блоки, но эти блоки по-прежнему имеют поля, отступы, границ, высоту строки и, таким образом, влияют на эти вычисления так же, как элементы с содержимым.
В элементе уровня блока, содержимое которого состоит из элементов встроенного уровня, свойство line-height определяет минимальную высоту линейных блоков внутри элемента. Минимальная высота состоит из минимальной высоты над базовой линией и минимальной глубины под ней.
Для элементов уровня строки line-height указывает высоту, которая используется при расчете высоты линейного блока.
Отрицательные значения не допустимы.
Свойство наследуется.
line-height
Значения:
- normal - Сообщает пользовательским агентам установить «разумное» значение на основе шрифта элемента. Значение по умолчанию. Когда элемент содержит текст, отображаемый более чем одним шрифтом, пользовательские агенты могут определить значение normal в соответствии с наибольшим размером шрифта.
- длина - Значение задаётся в единицах длины, создавая фиксированное значение высоты строки. Если задать значение меньше единицы, смежные строки будут находить друг на друга.
- число - Используемое значение свойства — это число, умноженное на размер шрифта элемента.
- % - Вычисленное значение свойства — это процент, умноженный на вычисленный размер шрифта элемента.
- inherit - Наследует значение свойства от родительского элемента.
Синтаксис
CSS
line-height: normal; line-height: 2em; line-height: 1.5; line-height: 50%; line-height: inherit;
Свойство vertical-align влияет на вертикальное позиционирование в линейном блоке элементов уровня строки: display: inline и display: table-cell. Значения этого свойства имеют другие значения в контексте таблиц.
Свойство не наследуется.
vertical-align
Значения:
- baseline - Выравнивает базовую линию элемента по базовой линии его родителя, совмещая среднюю линию элемента со средней линией родительского элемента.
- sub - Делает элемент подстрочным (аналогично с тегом <sub>). Величина понижения элемента может меняться в зависимости от браузера пользователя.
- super - Делает элемент надстрочным (аналогично с тегом <sup>). При этом значения sup и super не меняют размер шрифта, по умолчанию текст надстрочного и подстрочного элемента имеет такой же размер, как и текст родительского элемента.
- top - Верхний край элемента совмещается с верхним краем самого высокого элемента в линии.
- text-top - Верхний край элемента совмещается с верхним краем шрифта родительского элемента.
- middle - Средняя линия элемента (обычно изображения) совмещается с линией, проходящей через середину родительского элемента.
- bottom - Нижний край элемента совмещается с нижним краем самого низкого элемента в линии.
- text-bottom - Нижний край элемента совмещается с нижним краем шрифта родительского элемента.
- % - Не позволяет устанавливать middle, вычисляется как часть line-height элемента, а не его родителя, т.е. если установить значение vertical-align, равное 50% для элемента с line-height равным 20рх, то базовая линия элемента поднимется на 10px.
- длина - Устанавливает значение в единицах длины, перемещая элемент на заданное расстояние.
- inherit - Наследует значение свойства от родительского элемента.
Синтаксис
CSS
vertical-align: baseline; vertical-align: sub; vertical-align: super; vertical-align: text-top; vertical-align: text-bottom; vertical-align: middle; vertical-align: top; vertical-align: bottom; vertical-align: 6em; vertical-align: 10px; vertical-align: 25%; vertical-align: inherit;
10. Изменение блочной модели: свойство box-sizing
Свойство box-sizing переключает блочную модель с фиксированных размеров длины и ширины на content-box и border-box. Это влияет на интерпретацию всех свойств, определяющих размеры, включая flex-basis.
Свойство не наследуется.
box-sizing
Значения:
- content-box - Это поведение ширины и высоты, как указано в CSS2.1. Заданные ширина и высота (и соответствующие min/max-свойства) применяются к ширине и высоте области содержимого элемента. Поля padding и рамка border элемента располагаются за пределами указанной ширины и высоты. Значение по умолчанию.
- border-box - Любые padding или border, заданные для элемента, размечаются и отрисовываются внутри указанных значений ширины и высоты. Ширина и высота содержимого вычисляются путем вычитания ширины границ и полей соответствующих сторон из указанных свойств ширины и высоты. Значение auto свойств width и height не зависит от свойства box-sizing и всегда устанавливает размер блока с содержимым. Сумма padding и border не должна превышать заданные значения width и height, в противном случае размер области содержимого будет равен нулю.
- initial - Устанавливает значение свойства в значение по умолчанию.
- inherit - Наследует значение свойства от родительского элемента.
Некоторые html-элементы, например, <button>, по умолчанию имеют box-sizing: border-box.
Синтаксис
CSS
box-sizing: content-box; box-sizing: border-box; box-sizing: inherit; box-sizing: initial;
Источник ↗