Для фронтенд-разработчика понимание блочной модели CSS является решающим фактором для создания макетов с точностью до пикселя. Давайте углубимся и обсудим, как строчные и блочные элементы ведут себя по-разному в контексте двух типов блочных моделей — поля содержимого и поля границы.
Прежде чем мы углубимся в детали, стоит вспомнить, что вообще представляет собой коробочная модель. Каждый элемент на вашей странице представляет собой коробку (да, даже те, которые на самом деле не кажутся квадратными по форме). Ящики могут находиться внутри других ящиков, содержать их и/или рядом с ними.
Блочная модель применяется ко всем из них и состоит из:
Поэтому почти каждый элемент HTML внутри
, включая его, и каждый псевдоэлемент CSS представляют собой блок. «Стенки» этого блока являются вашей границей, и им можно задать толщину (или ширину. Между этим содержимым и стенками этого блока у вас есть отступы. Между этими стенками и другими блоками у вас есть поле.Очень важно понимать ключевые различия в том, как блочная модель влияет на встроенные и блочные элементы:
Ширина: Элементы блока по умолчанию расширяются, заполняя свой контейнер. Встроенные элементы? Они занимают достаточно места для своего контента.
Высота: Для блочных элементов отступы, границы и поля увеличивают высоту. Встроенные элементы остаются в пределах высоты строки, независимо от вертикального заполнения или границ.
Влияние на макет: Элементы блока влияют как на горизонтальную, так и на вертикальную компоновку. Строчные элементы ориентированы на горизонтальный поток с минимальным влиянием на вертикальный интервал.
Схлопывание полей: Схлопывание полей — это поведение, специфичное для блочных элементов, при котором соседние вертикальные поля могут сливаться (поэтому поле-дно:20 пикселей на одном элементе может свернуться в поле-верх: 20 пикселей на следующем элементе, создавая одно поле шириной 20 пикселей). Встроенные элементы в эту игру не играют.
Теперь, когда мы знаем компоненты блочной модели и разницу между встроенными и блочными элементами, давайте посмотрим, как на блоки с содержимым влияет свойство box-sizing в зависимости от того, являются ли они встроенными или блочными элементами.
Свойство box-sizing управляет расчетом ширины и высоты элемента и может существенно повлиять на макет.
Когда box-sizing: content-box применяется к строчному элементу:
Когда размер окна: content-box применяется к элементу блока:
Когда размер окна: border-box применяется к строчному элементу:
Когда размер окна: border-box применяется к элементу блока:
Стоит отметить, что, хотя поле контента используется по умолчанию, поле границы считается более интуитивно понятным и обеспечивает максимальную степень контроля.
Блоковая модель CSS — это не просто мощная концепция, это основополагающий инструмент в вашем арсенале фронтенд-разработчика. Понимая, как размер блока по-разному влияет на встроенные и блочные элементы, вы можете начать создавать безупречные макеты, одновременно четкие и функциональные, без необходимости устранять неполадки с некорректно работающими макетами.
Если вам понравилась эта загрузка для Box Model, наведите указатель мыши на коробку в форме сердца в левом верхнем углу и покажите этому посту всю свою любовь!
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3