Эй, замечательные люди! Добро пожаловать обратно в мой блог. ? Сегодня мы углубимся в блочную модель CSS, проясним, как определяется размер каждого элемента и как вы можете использовать эти знания для создания точного, современного и чистого дизайна (реальные примеры в конце этой статьи).
Блочная модель CSS лежит в основе веб-дизайна и определяет, как каждый HTML-элемент занимает пространство на веб-странице.
Подробная разбивка компонентов блочной модели
Содержимое : это фактическое содержимое поля, в котором находится текст, изображения и другие элементы. Его размер определяется свойствами ширины и высоты.
Отступы : это пространство вокруг контента внутри границы. Отступы прозрачны, если не указано иное.
Граница : обтекает отступы и содержимое. Ему можно задать ширину, стиль (например, сплошной, пунктирный) и цвет.
Маржа : это пространство за пределами границы. Он также прозрачен и влияет на расстояние между элементами
Блочная модель в действии:
.example { width: 200px; /* Content width */ height: 100px; padding: 10px; /* Adds 20px to both width and height */ border: 5px solid #000; /* Adds 10px to both width and height */ margin: 20px; /* Does not contribute to the element's dimensions but affects layout */ }
Расчет общей ширины : 200 пикселей (содержимое), 20 пикселей (отступы), 10 пикселей (граница) = 230 пикселей
Расчет общей высоты : 100 пикселей 20 пикселей 10 пикселей = 130 пикселей
Распространенные заблуждения
Ширина/высота влияет только на контент : многие полагают, что настройка ширины или высоты определяет общий размер, но это только область содержимого.
Размер поля : Без изменения размера поля: border-box, добавление отступов или границ увеличивает элемент за пределы заданной ширины/высоты.
Визуализация блочной модели: Представьте, что у вас есть бокс указанных выше размеров. Вот визуальная разбивка:
.box { background-color: #f0f0f0; width: 300px; height: 150px; padding: 20px; border: 10px solid #000; margin: 30px; }
Область контента : 300x150 пикселей (серая область)
Отступы : добавляет 20 пикселей вокруг, увеличивая размер до 340x190 пикселей.
Граница : окружает отступы, создавая окончательный размер поля 360x210 пикселей
Маржа : создает пространство вокруг границы, но не учитывается напрямую в размерах элемента.
Свойство Box-Sizing : Использование box-sizing: border-box включает отступы и границы в указанную ширину/высоту, оптимизируя дизайн:
* { box-sizing: border-box;}
Это объявление будет применяться ко всем элементам, что сделает расчет размера более интуитивным.
Процентные значения : при использовании с отступами или полями проценты рассчитываются относительно ширины содержащего элемента.
Автоматические поля : Настройка поля: автоматически центрирует элементы по горизонтали (или по вертикали, если используется флексбокс).
Поплавки : элементы с плавающей запятой могут привести к непредвиденному поведению, когда поля схлопываются или перекрываются.
Flexbox и Grid : эти современные методы макетирования по-разному обрабатывают поля. Например, поля не схлопываются в гибких контейнерах или ячейках сетки, как это происходит с элементами уровня блока.
Перекрывающиеся элементы : понимание z-индекса и позиционирования помогает управлять глубиной при перекрытии элементов.
Создавайте единообразный дизайн: используйте единообразные размеры блоков во всем проекте, чтобы избежать ошибок при расчете размеров.
Адаптивный дизайн: помните, как масштабируются отступы и поля. Процентные значения полей могут помочь сохранить пропорции на экранах разных размеров.
Отладка : если элемент выглядит больше или меньше ожидаемого, проверьте настройки отступов, границ и полей.
Использование контура : в отличие от границ, контуры не влияют на размеры элемента, что может быть полезно в определенных проектах пользовательского интерфейса.
1.Адаптивный макет карты. Проверьте код на Codepen.
Объяснение:
Box-Sizing : Установка размера окна: border-box; гарантирует, что отступы не увеличивают общую ширину и высоту, что упрощает адаптивный дизайн.
Макет карты : класс .card определяет контейнер с фиксированной шириной, закругленными углами и тенью для глубины.
Изображение карты: действует как заполнитель для изображения с размерами, заданными по высоте.
Содержимое карты : здесь отступы используются для отделения содержимого от границы. Здесь вы видите блочную модель в действии; отступы увеличивают кликабельную область внутри карточки, но не увеличивают заявленную ширину карточки.
Маржа : используется незаметно в .card-title и .card-text для разделения элементов внутри карточки.
Кнопка: оформлена в виде типичного призыва к действию, с эффектами наведения, демонстрирующими переходы CSS.
2.Простой список сообщений в блоге. Проверьте код на Codepen.
Дайте мне знать, если вам нужно какое-либо объяснение этого примера! Буду рад помочь вам в комментариях!
Блочная модель CSS, хотя и проста в теории, имеет уровни сложности, которые влияют на то, как мы проектируем и отлаживаем веб-макеты. Поняв и освоив эту концепцию, вы будете лучше подготовлены к созданию понятных, предсказуемых и адаптивных проектов.
? Здравствуйте, я Элефтерия, менеджер сообщества, разработчик, оратор и создатель контента.
? Если вам понравилась эта статья, поделитесь ею.
? Все ссылки | X | LinkedIn
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3