Блочная модель | Основы современной верстки
Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером
Видео может быть заблокировано из-за расширений браузера. В статье вы найдете решение этой проблемы.
Представьте себе процесс строительства дома. Условно его можно разделить на несколько этапов: возведение структуры дома и его отделка. При возведении дома мы заливаем фундамент, возводим стены, устанавливаем крышу. После этого уже переходим к покраске дома, устанавливаем окна и занимаемся декорированием.
Процесс создания верстки можно описать похожими процессами. В ней так же важна роль возведения структуры и отделки. Для этого существуют несколько основных типов элементов:
- Блочные элементы (Block level). Эти элементы отвечают за каркас страницы.
- Строчные элементы (Inline level).
Они помогают нам в процессе стилизации страницы или добавления функциональных частей.
Важно: сами по себе элементы HTML не являются блочными или строчными. HTML — всего лишь разметка. За то, будет элемент блочным или строчным, отвечает CSS. Для всех HTML-тегов существуют стандартные модели вывода, которые по умолчанию настроены в браузере, поэтому понятие блочных и строчных элементов обычно соотносят с определенными тегами, так как они имеют стандартное поведение при добавлении на страницу. В уроках соответствие тегов и значения условно, так как это поведение легко изменить с помощью CSS свойства display
.
Блочные элементы
Основная особенность блочных элементов — они занимают всю доступную им ширину. Из-за этого другие элементы до и после блочных элементов не встают в один ряд с ними, а располагаются до или после них, но уже на другой строке.
Представьте, что у вас есть шкаф и коробки с шириной, равной ширине шкафа. В этом случае мы не можем поставить коробки рядом друг с другом, так как для этого у нас не будет пространства.
В HTML-разметке такие коробки могли бы выглядеть следующим образом:
<div>Коробка №1</div> <div>Коробка №2</div> <div>Коробка №3</div>
На примере этой разметки уже стало понятно, что элемент <div>
является блочным элементом. Он занимает всю доступную ширину, и из-за этого другие элементы не встают с ним в один ряд.
Стоит отдельно отметить понятие «занимает всю доступную ширину». Что же именно скрывается за этой доступной шириной? Ширина всей страницы, ширина экрана или ширина дороги близ деревни Ракушки? На самом деле доступная ширина — вся доступная ширина родителя
<body>
, то эта ширина будет равна именно ширине <body>
. Стоит изменить ширину <body>
, так сразу изменится и ширина блочного элемента внутри.
Какие же еще элементы являются блочными? На самом деле их так много, что просто делать перечисление не очень верно. В процессе углубления в верстку вы сами обнаружите, какие элементы являются блочными. Основными же блочными элементами являются:
<div>
<p>
- Теги списков:
<ul>
/<ol>
/<li>
- Заголовки:
<h2>
/<h3>
/<h4>
/<h5>
/<h5>
/<h6>
Внутрь блочных элементов мы можем вкладывать другие блочные элементы. Это позволяет нам делать сложную верстку, оперируя различными компонентами, которые будут созданы.
<div> <div> <h2>Заголовок статьи</h2> </div> <div> <p>А здесь находится текст статьи</p> </div> </div>
Как вы видите, внутрь блочных элементов <div>
мы положили другие такие же блоки, а также заголовок и параграф. Такая вложенность может достигать любого уровня.
Важно: хоть HTML и позволяет бесконечно вкладывать блоки друг в друга, лучше сохранять здравый смысл. Дело в том, что процесс вывода верстки достаточно долгий для браузеров. На это тратится довольно много ресурсов. И чем больше вложенность блоков друг в друга, тем сложнее браузеру и компьютеру все это обработать
Вложенность блочных элементов друг в друга ограничена только несколькими пунктами:
- Нельзя вкладывать заголовки в заголовки
- Нельзя вкладывать параграфы в параграфы
Скорее всего с этим у вас проблем не возникнет, так как представить себе ситуацию с заголовком внутри заголовка достаточно трудно.
Для создания блочного элемента используется тег <div>
. Он не имеет никаких дополнительных стилей, кроме блочного отображения. Этим тегом оборачивается связанная информация, создаются каркасы компонентов. Но тег не является семантичным, то есть не несет смысловой нагрузки. Подробнее о семантических элементах будет в следующем уроке
Строчные элементы
Строчные элементы являются отделочным материалом, с помощью которого мы можем выделить участки текста, или добавить немного логики, как в случае со ссылками. Строчные элементы противоположны блочным. Они не занимают всю доступную ширину и из-за этого не происходит переноса соседних элементов.
Давайте добавим в прошлый пример строчный элемент:
<div> <div> <h2>Заголовок статьи</h2> </div> <div> <p>А <a href="#">здесь</a> находится текст статьи</p> </div> </div>
Что произошло? Мы обернули слово здесь в ссылку, которая уведет пользователя в то место, которое мы укажем. Что произойдет в браузере при добавлении этого тега? Ссылка станет синего цвета и появится подчеркивание. Но сам текст останется на месте, так как ширина ссылки будет равна ширине слова здесь.
Если представить наши строчные элементы в виде коробок, то они расположатся следующим образом:
Это главная отличительная черта строчных элементов. Помимо этого есть важная особенность, связанная с применением свойств
width
и height
в CSS. Для строчных элементов эти свойства не работают
Наиболее часто используемыми строчными элементами являются:
<span>
<a>
- Теги выделения текста:
<i>
/<em>
/<b>
/<strong>
Так же, как и блочные элементы, мы можем вкладывать строчные элементы внутрь строчных. Это распространенная практика, которая вам пригодится. Например:
<span> Длинный текст, который мы обернули в строчный элемент span. Внутри span мы также можем вставить тег <i>i</i>, <strong>strong</strong> и так далее. </span>
Используйте <span>
для дополнительных стилей внутри блочных элементов, например параграфов. Например,
<p>Хекслет — <span>онлайн</span> курсы по программированию</p>
Теперь можно использовать <span>
для создания дополнительных стилей, например для другого цвета или шрифта
Важно: не вкладывайте внутрь строчных элементов блочные. Это нарушает семантику и усложняет чтение кода
Блочная модель документа
Еще до работы с CSS полезно понимать, как браузер выводит элементы на вашу страницу. Помимо естественных свойств высоты и ширины, любой элемент на странице может иметь следующие свойства:
padding
— Внутренние отступы элементаmargin
— Внешние отступы от элементаborder
— Видимые границы элемента
Каждое из них не просто выполняет ту функцию, которая указана, но и напрямую влияет на конечные значения высоты и ширины элемента.
Представьте, что у нас есть квадрат со стороной 150 пикселей. Мы добавили к нему рамку в 2 пикселя, внутренний отступ в 10 пикселей с каждой стороны и по 20 пикселей внешнего отступа с каждой стороны.
Сколько места будет занимать наш квадрат на странице? Для этого нам надо суммировать все значения.
Ширина: 150px (начальная ширина) + 2px (граница справа) + 2px (граница слева) + 10px (внутренний отступ справа) + 10px (внутренний отступ слева) + 20px (Внешний отступ справа) + 20px (Внешний отступ слева) = 214px
Высота: 150px (начальная высота) + 2px (граница сверху) + 2px (граница снизу) + 10px (внутренний отступ сверху) + 10px (внутренний отступ снизу) + 20px (Внешний отступ сверху) + 20px (Внешний отступ снизу) = 214px
Дополнительное задание
Воспользуйтесь любым онлайн сервисом, который умеет преобразовывать HTML разметку. Например, https://htmlcodeeditor.com/ .
Вставьте в левую область следующую разметку:
<div> <div> <h2>Заголовок статьи</h2> </div> <div> <p>А здесь находится текст статьи</p> </div> </div>
Попробуйте изменять блочные и строчные теги, добавлять и удалять их. Посмотрите, как будет меняться поведение.
Дополнительные материалы
- Верстка текста. Списки — HTML Basics: Урок 3
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты.
Данная страница не существует!
О центре
История
Структура
Совет Директоров
Руководство
Специалисты
Помним
Дирекция специальных проектов
Дирекция научно-технических проектов и экспертиз
Вакансии
Научные школы
Партнеры
Технологическая платформа «Строительство и архитектура»
Членство в организациях
Лицензии
Раскрытие информации
Отчетность 2019
Непрофильные активы
Противодействие коррупции
Социальная ответственность
Услуги
В сфере подземного строительства
Геологические изыскания
Инженерные изыскания
В сфере бетонного строительства
В высотном и уникальном строительстве
Проектирование
Управление проектами
Проект реконструкции
Экспертиза
Обследование зданий
Технологический и ценовой аудит (ТЦА)
Галерея проектов
Ультразвуковой контроль сплошности свай и ультразвуковой контроль сплошности стен в грунте
Акустическое обследование фундаментных плит
Сейсмоакустический контроль сплошности свай
Сейсмоакустический контроль сплошности фундаментов и плит, поиск дефектов и пустот
Динамические испытания свай по волновой теории удара
Статические испытания свай
Теплоконтроль сейсмичности при бетонировании свай
Новости
Новости Центра
Новости отрасли
Календарь мероприятий
СМИ о нас
Отзывы организаций
Закупки
Центр
сертификацииЗаказчику
Оборудование
Контакты
Научно —
техническая
деятельностьНаучные и инновационные разработки в области строительства и их внедрение
Научно-исследовательские (теоретические, поисковые и прикладные) работы
Научно-технический совет (НТС)
Научно-техническое сопровождение
Нормативно-технические документы
Разработка СТУ
Сотрудничество
BIM-технологии
Интеллектуальная собственность
Корпоративные издания
Научно —
образовательная
деятельностьСведения об образовательной деятельности
Диссертационный совет
Информация о защитах диссертаций
Аспирантура
Подготовка диссертаций без освоения программы подготовки научно-педагогических кадров в аспирантуре
Прикрепление для сдачи кандидатских экзаменов
Докторантура
Повышение квалификации
Учебные программы Центра информационного моделирования
Психология личностного роста в профессиональной деятельности
ПК СТАРКОН.
Обучение.
Кафедра Иностранных языков и кафедра Философии
Кафедра Строительные сооружения, конструкции и материалы
Вакансии
Контакты
Обратная связь
Блочная модель — Изучите веб-разработку
- Предыдущая
- Обзор: строительные блоки
- Следующий
Все в CSS окружено рамкой, и понимание этих рамок является ключом к возможности создавать более сложные макеты с помощью CSS или выравнивать элементы с другими элементами. В этом уроке мы рассмотрим блочную модель CSS . Вы получите представление о том, как это работает, и о терминологии, которая к этому относится.
Предпосылки: | Базовая компьютерная грамотность, установлено базовое программное обеспечение, базовые знания работа с файлами, основы HTML (изучение Введение в HTML) и представление о том, как работает CSS (изучите Первые шаги CSS.) |
---|---|
Цель: | Чтобы узнать о блочной модели CSS, из чего состоит блочная модель и как ее переключиться на альтернативную модель. |
В CSS есть два типа блоков — блочные блоки и встроенные блоки . Тип относится к тому, как блок ведет себя с точки зрения потока страниц и по отношению к другим блокам на странице. Коробки имеют внутренний дисплей типа и внешний дисплей типа .
В общем, вы можете установить различные значения для типа дисплея, используя свойство display
, которое может иметь различные значения.
Если коробка имеет тип внешнего дисплея блок
, затем:
- Коробка перейдет на новую строку.
- Свойства
width
иheight
учитываются. - Отступы, поля и границы заставят другие элементы быть отодвинутыми от поля.
- Коробка выдвинется в линейном направлении, чтобы заполнить пространство, доступное в ее контейнере. В большинстве случаев коробка становится такой же ширины, как и ее контейнер, заполняя 100% доступного пространства.
Некоторые элементы HTML, например
и
, по умолчанию используйте блок
в качестве внешнего типа отображения.
Если блок имеет тип внешнего отображения встроенный
, тогда:
- Блок не будет переходить на новую строку.
- Свойства
width
иheight
не применяются. - Будут применяться вертикальные отступы, поля и границы, но другие встроенные блоки не будут отодвигаться от блока.
- Будут применены горизонтальные отступы, поля и границы, которые заставят другие встроенные блоки отойти от блока.
Некоторые элементы HTML, такие как
,
,
и
, по умолчанию используют встроенный
в качестве внешнего типа отображения.
Блоки также имеют внутренний тип отображения , который определяет расположение элементов внутри этого блока.
Блочный и встроенный макет — это то, как по умолчанию все работает в Интернете. По умолчанию и без каких-либо других инструкций элементы внутри коробки также располагаются в обычный поток и ведут себя как блочные или встроенные блоки.
Вы можете изменить тип внутреннего дисплея, например, установив display: flex;
. Элемент по-прежнему будет использовать тип внешнего отображения
block
, но это изменит тип внутреннего отображения на flex
. Любые непосредственные дочерние элементы этого блока станут гибкими элементами и будут вести себя в соответствии со спецификацией Flexbox.
Когда вы перейдете к более подробному изучению CSS Layout, вы столкнетесь с flex
и различные другие внутренние значения, которые могут иметь ваши блоки, например grid
.
Примечание: Чтобы узнать больше о значениях отображения и о том, как блоки работают в блочном и встроенном макете, ознакомьтесь с руководством MDN «Блочный и встроенный макет».
В приведенном ниже примере есть три разных HTML-элемента, каждый из которых имеет тип внешнего отображения block
.
- Абзац с рамкой, добавленной в CSS. Браузер отображает это как блок-бокс. Абзац начинается с новой строки и растягивается на всю доступную ширину.
- Список, выложенный с помощью
display: flex
. Это устанавливает гибкий макет для дочерних элементов контейнера, которые являются гибкими элементами. Сам список представляет собой блок-бокс и, как и абзац, расширяется на всю ширину контейнера и переходит на новую строку. - Абзац блочного уровня, внутри которого находятся два элемента
встроенными
, однако один из элементов имеет класс «блок», который устанавливается равным 9.0042 дисплей: блок .
В следующем примере мы можем увидеть, как ведут себя встроенных элемента
.
- Элементы
- Элемент
, для которого установлено значениеdisplay: inline-flex
создает встроенный блок, содержащий несколько flex-элементов. - Оба абзаца имеют значение
display: inline
.Встроенный гибкий контейнер и абзацы располагаются вместе на одной строке, а не разбиваются на новые строки (как это было бы, если бы они отображались как элементы уровня блока).
Для переключения между режимами отображения вы можете изменить display: inline
на display: block
или display: inline-flex
на display: flex
.
Главное, о чем следует помнить на данный момент: изменение значения свойства display
может изменить тип внешнего отображения блока: блочный или встроенный. Это изменяет способ отображения рядом с другими элементами макета.
Блочная модель CSS в целом применяется к блочным блокам и определяет, как различные части блока — поля, границы, отступы и содержимое — работают вместе, чтобы создать блок, который вы можете видеть на странице. Встроенные блоки используют всего некоторые поведения, определенного в блочной модели.
Чтобы добавить сложности, существует стандартная и альтернативная модель коробки. По умолчанию браузеры используют стандартную блочную модель.
Части коробки
Составление блока в CSS у нас есть:
- Блок контента : Область, где отображается ваш контент; измените его, используя такие свойства, как
встроенный размер
иразмер блока
илиширина
ивысота
. - Поле отступа : Отступ размещается вокруг содержимого в виде пробела; размер его с использованием
padding
и связанных свойств. - Пограничный блок : Пограничный блок оборачивает содержимое и любые отступы; размер его с помощью
границы
и связанных свойств. - Поле поля : Поле — это самый внешний слой, обертывающий содержимое, отступы и границу в виде пробела между этим полем и другими элементами; размер его с использованием поля
На схеме ниже показаны эти слои:
Стандартная блочная модель CSS
В стандартной блочной модели, если вы задаете блоку встроенный размер
и размер блока
(или ширина
и высота
), это определяет встроенный -размер и размер блока (ширина и высота в горизонтальных языках) блока содержимого . Затем к этим размерам добавляются любые отступы и границы, чтобы получить общий размер, занимаемый блоком (см. изображение ниже).
Если предположить, что ящик имеет следующий CSS:
.box { ширина: 350 пикселей; высота: 150 пикселей; поле: 10 пикселей; отступ: 25 пикселей; граница: 5px сплошной черный цвет; }
Фактическое пространство , занимаемое коробкой, будет иметь ширину 410 пикселей (350 + 25 + 25 + 5 + 5) и высоту 210 пикселей (150 + 25 + 25 + 5 + 5).
Примечание: Поле не учитывается при подсчете фактического размера поля — конечно, оно влияет на общее пространство, которое поле будет занимать на странице, а только на пространство вне поля. Область блока останавливается на границе — она не выходит за пределы поля.
Альтернативная блочная модель CSS
В альтернативной блочной модели любой шириной является ширина видимого блока на странице. Ширина области содержимого равна этой ширине за вычетом ширины заполнения и границы (см. изображение ниже). Не нужно добавлять границы и отступы, чтобы получить реальный размер блока.
Чтобы включить альтернативную модель элемента, установите на него box-sizing: border-box
:
.box { box-sizing: граница-коробка; }
Если предположить, что поле имеет тот же CSS, что и выше:
.ящик { ширина: 350 пикселей; встроенный размер: 350 пикселей; высота: 150 пикселей; размер блока: 150 пикселей; поле: 10 пикселей; отступ: 25 пикселей; граница: 5px сплошной черный цвет; }
Теперь фактическое пространство, занимаемое блоком, будет составлять 350 пикселей в линейном направлении и 150 пикселей в блочном направлении.
Чтобы использовать альтернативную блочную модель для всех ваших элементов (что является обычным выбором среди разработчиков), установите свойство box-sizing
в
и установите все остальные элементы, чтобы наследовать это значение:
html { box-sizing: граница-коробка; } *, *::до, *::после { box-sizing: наследовать; }
Чтобы понять основную идею, вы можете прочитать статью CSS Tricks о box-sizing.
Примечание: Интересная история — Internet Explorer по умолчанию использовал альтернативную блочную модель без механизма переключения.
В приведенном ниже примере вы видите два поля. У обоих 9 класс.0042 .box , что дает им одинаковые width
, height
, margin
, border
и padding
. Единственное отличие состоит в том, что для второго блока используется альтернативная модель блока.
Можете ли вы изменить размер второго блока (путем добавления CSS в класс .alternate
), чтобы он соответствовал первому блоку по ширине и высоте?
Примечание: Вы можете найти решение этой задачи здесь.
Используйте браузер DevTools для просмотра блочной модели
Инструменты разработчика вашего браузера могут значительно упростить понимание блочной модели. Если вы просматриваете элемент в DevTools Firefox, вы можете увидеть размер элемента, а также его поля, отступы и границу. Проверка элемента таким образом — отличный способ узнать, действительно ли ваша коробка имеет тот размер, о котором вы думаете!
Вы уже видели свойства margin
, padding
и border
в работе в приведенном выше примере. Свойства, используемые в этом примере, равны сокращает и позволяет нам установить все четыре стороны коробки одновременно. Эти сокращения также имеют эквивалентные свойства обычного письма, которые позволяют контролировать разные стороны поля по отдельности.
Давайте рассмотрим эти свойства более подробно.
Поле
Поле — это невидимое пространство вокруг коробки. Он отталкивает другие элементы от коробки. Поля могут иметь положительные или отрицательные значения. Установка отрицательного поля на одной стороне поля может привести к тому, что оно перекроет другие элементы на странице. Независимо от того, используете ли вы стандартную или альтернативную блочную модель, поле всегда добавляется после того, как будет рассчитан размер видимой рамки.
Мы можем контролировать все поля элемента сразу, используя свойство margin
, или каждую сторону отдельно, используя эквивалентные свойства:
-
margin-top
-
поле справа
-
нижнее поле
-
поле слева
В приведенном ниже примере попробуйте изменить значения поля, чтобы увидеть, как поле перемещается из-за того, что поле создает или удаляет пространство (если это отрицательное поле) между этим элементом и содержащим элементом.
Сжатие полей
В зависимости от того, имеют ли два элемента, соприкасающиеся поля, положительные или отрицательные поля, результаты будут разными:
- Два положительных поля объединятся в одно поле. Его размер будет равен наибольшей индивидуальной марже.
- Два отрицательных поля будут свернуты, и будет использовано наименьшее (самое дальнее от нуля) значение.
- Если одно поле отрицательное, его значение будет равно вычтенному из общей суммы .
В приведенном ниже примере у нас есть два абзаца. Верхний абзац имеет поле -нижнее поле
из 50 пикселей, другой имеет поле -верхнее поле
из 30 пикселей. Поля свернуты вместе, поэтому фактическое расстояние между полями составляет 50 пикселей, а не сумма двух полей.
Вы можете проверить это, установив margin-top
второго абзаца на 0. Видимое поле между двумя абзацами не изменится — оно сохраняет 50 пикселей, установленных в margin-bottom
первого абзаца. Если вы установите его на -10 пикселей, вы увидите, что общее поле становится равным 40 пикселям — оно вычитается из 50 пикселей.
Ряд правил предписывает, когда поля сжимаются, а когда нет. Для получения дополнительной информации см. подробную страницу о сворачивании полей. Главное помнить, что схлопывание полей — это то, что происходит, если вы создаете пространство с полями и не получаете ожидаемого пространства.
Границы
Граница рисуется между полями и отступами блока. Если вы используете стандартную блочную модель, размер границы добавляется к
ширина
и высота
коробки. Если вы используете альтернативную блочную модель, то размер границы делает блок содержимого меньше, поскольку он занимает часть доступной ширины
и высоты
.
Для стилизации границ существует большое количество свойств — есть четыре границы, и каждая граница имеет стиль, ширину и цвет, которыми мы можем манипулировать.
Вы можете установить ширину, стиль или цвет всех четырех границ одновременно, используя граница
свойство.
Для индивидуальной настройки свойств каждой стороны используйте:
-
border-top
-
граница справа
-
нижняя граница
-
граница левая
Чтобы установить ширину, стиль или цвет всех сторон, используйте:
-
border-width
-
бордюр
-
цвет рамки
Чтобы задать ширину, стиль или цвет одной стороны, используйте одно из более детальных свойств:
-
ширина верхней границы
-
бордюрный верх
-
цвет верхней границы
-
ширина границы справа
-
граница справа
-
граница правого цвета
-
ширина нижней границы
-
нижняя граница
-
цвет нижней границы
-
ширина левой границы
-
граница слева
-
левая граница
В приведенном ниже примере мы использовали различные сокращения и записи для создания границ. Поэкспериментируйте с различными свойствами, чтобы убедиться, что вы понимаете, как они работают. Страницы MDN для свойств границ предоставляют информацию о различных доступных стилях границ.
Заполнение
Заполнение находится между границей и областью содержимого и используется для отодвигания содержимого от границы. В отличие от полей, у вас не может быть отрицательного заполнения. Любой фон, примененный к вашему элементу, будет отображаться за отступом.
Свойство padding
управляет отступами со всех сторон элемента. Чтобы управлять каждой стороной по отдельности, используйте следующие свойства:
-
padding-top
-
правая прокладка
-
набивка дна
-
накладка слева
В приведенном ниже примере вы можете изменить значения заполнения для класса .box
, чтобы увидеть, что это меняет начало текста относительно поля. Вы также можете изменить отступы в классе 9. 0042 .container для создания пространства между контейнером и коробкой. Вы можете изменить отступ любого элемента, чтобы создать пространство между его границей и всем, что находится внутри элемента.
Все сказанное в полной мере относится к блок-боксам. Некоторые свойства могут применяться и к встроенным блокам, например, созданным элементом
.
В приведенном ниже примере у нас есть
внутри абзаца. Мы применили ширину
, высоту
, поле
, граница
и дополнение
к нему. Вы можете видеть, что ширина и высота игнорируются. Вертикальные поля, отступы и границы учитываются, но не изменяют отношение другого содержимого к нашему встроенному блоку. Отступы и границы перекрывают другие слова в абзаце. Горизонтальные отступы, поля и границы отодвигают другое содержимое от поля.
display: inline-block
— это специальное значение display
, которое обеспечивает средний уровень между встроенный
и блок
. Используйте его, если вы не хотите, чтобы элемент разбивался на новую строку, но хотите, чтобы он учитывал ширину
, ширину
и высоту ,
и избегал перекрытия, показанного выше.
Элемент с display: inline-block
выполняет подмножество вещей, о которых мы уже знаем:
- Свойства
width
иheight
учитываются. -
отступ
,поле
играница
приведет к тому, что другие элементы будут выталкиваться из коробки.
Однако он не переходит на новую строку и становится больше, чем его содержимое, только если вы явно добавите свойства width
и height
.
В следующем примере мы добавили display: inline-block
к нашему элементу
. Попробуйте изменить это на display: block
или полностью удалите строку, чтобы увидеть разницу в моделях дисплеев.
Это может быть полезно, когда вы хотите увеличить область действия ссылки, добавив отступ
.
— встроенный элемент, такой как
; вы можете использовать display: inline-block
, чтобы разрешить установку отступов, чтобы пользователю было проще щелкнуть ссылку.
Вы часто видите это в панелях навигации. Навигация ниже отображается в строке с использованием flexbox, и мы добавили отступы к
, так как мы хотим иметь возможность изменять цвет фона
при наведении курсора на
. Кажется, что отступ перекрывает границу элемента
. Это потому, что
является встроенным элементом.
Добавьте display: inline-block
к правилу с селектором .links-list a
, и вы увидите, как это решает эту проблему, заставляя отступы учитываться другими элементами.
Вы дошли до конца этой статьи, но можете ли вы вспомнить самую важную информацию? Вы можете найти дополнительные тесты, чтобы убедиться, что вы сохранили эту информацию, прежде чем двигаться дальше — см. Проверка своих навыков: блочная модель.
Это большая часть того, что вам нужно знать о блочной модели. Возможно, вам захочется вернуться к этому уроку в будущем, если вы когда-нибудь запутаетесь в том, насколько большие блоки расположены в вашем макете.
В следующей статье мы рассмотрим, как можно использовать фон и границы, чтобы сделать ваши простые блоки более интересными.
- Предыдущий
- Обзор: строительные блоки
- Следующий
- Каскад и наследование
- селектора CSS
- Селекторы типа, класса и идентификатора
- Селекторы атрибутов
- Псевдоклассы и псевдоэлементы
- Комбинаторы
- Коробочная модель
- Фоны и рамки
- Обработка различных направлений текста
- Переполнение содержимого
- Значения и единицы
- Размер элементов в CSS
- Изображения, мультимедиа и элементы форм
- Столы для укладки
- Отладка CSS
- Организация CSS
- Основы понимания CSS
- Создание фирменных бланков
- Классная коробка
Последнее изменение: 000Z»> 13 сентября 2022 г. , участниками MDN
Проверьте свои навыки: Блочная модель — Изучите веб-разработку
Целью этого теста является проверка того, понимаете ли вы блочную модель CSS.
Примечание: Вы можете опробовать решения в интерактивных редакторах ниже. Однако может оказаться полезным загрузить код и использовать онлайн-инструмент, такой как CodePen, jsFiddle или Glitch, для работы над задачами.
Если вы застряли, обратитесь к нам за помощью — см. раздел «Оценка или дополнительная помощь» внизу этой страницы.
В этой задаче внизу есть два блока, один использует стандартную модель блока, другой — альтернативную модель блока. Измените ширину второго поля, добавив объявления в .alternate
класс, чтобы он соответствовал визуальной ширине первого блока.
Ваш окончательный результат должен выглядеть как на картинке ниже:
Попробуйте обновить текущий код ниже, чтобы воссоздать готовый пример:
Загрузите начальную точку для этой задачи, чтобы работать в своем собственном редакторе или в онлайн-редакторе.
В этом задании добавьте в поле:
- Черную пунктирную рамку толщиной 5 пикселей.
- Верхнее поле 20px.
- Правое поле 1em.
- Нижнее поле 40px.
- Левое поле 2em.
- Набивка со всех сторон 1em.
Ваш окончательный результат должен выглядеть как на картинке ниже:
Попробуйте обновить текущий код ниже, чтобы воссоздать готовый пример:
Загрузите начальную точку для этой задачи, чтобы работать в своем собственном редакторе или в онлайн-редакторе.
В этой задаче встроенный элемент имеет поля, отступы и границу. Однако линии выше и ниже перекрывают его. Что вы можете добавить в свой CSS, чтобы размер полей, отступов и границ учитывался другими строками, сохраняя при этом элемент встроенным?
Ваш окончательный результат должен выглядеть как на картинке ниже:
Попробуйте обновить текущий код ниже, чтобы воссоздать готовый пример:
Загрузите начальную точку для этой задачи, чтобы работать в своем собственном редакторе или в онлайн-редакторе.
Вы можете попрактиковаться в этих примерах в интерактивных редакторах выше.
Если вы хотите оценить свою работу или застряли и хотите обратиться за помощью:
- Поместите свою работу в общедоступный онлайн-редактор, такой как CodePen, jsFiddle или Glitch. Вы можете написать код самостоятельно или использовать исходные файлы, ссылки на которые приведены в приведенных выше разделах.
- Напишите сообщение с просьбой об оценке и/или помощи в разделе «Обучение» форума MDN Discourse. Ваш пост должен включать:
- Описательный заголовок, такой как «Оценка, необходимая для проверки навыков создания коробчатой модели 1».
- Подробная информация о том, что вы уже пробовали и что вы хотели бы, чтобы мы сделали; например, сообщите нам, если вы застряли и нуждаетесь в помощи или хотите получить оценку.
- Ссылка на пример, который вы хотите оценить или с которым вам нужна помощь, в общедоступном онлайн-редакторе (как указано в шаге 1 выше).