Свойство padding в CSS и свойство margin в CSS
Сегодня мы поработаем над пониманием разницы между padding (внутренний отступ) и margin (внешний отступ) в CSS. Но сначала разберемся с их синтаксисом. Существует несколько способов написания этих свойств: обычный и сокращенный:
Обычную форму записи рассматриваемых свойств проще понять, потому что она похожа на все остальные стилевые записи:
Обычная запись:
padding-top: 10px; padding-right: 20px; padding-bottom: 10px; padding-left: 20px;
С другой стороны, сокращенная запись в CSS объединяет в себе все эти свойства в одно общее свойство «padding«.
Краткая запись:
padding: 10px 20px 40px 10px;
У margin и padding есть четыре значения: верхнее, правое, нижнее и левое. В сокращенной записи, показанной выше, так же задаются четыре значения, отделенных друг от друга пробелом. Первое из четырех значений отступ сверху, затем отступ справа, снизу (padding bottom HTML) и слева:
padding: TOP RIGHT BOTTOM LEFT; (padding: сверху справа снизу слева)
Эту запись можно сократить запись до трех значений, если левый и правый padding/margin одинаковы. Например, если верхний отступ равен 30px, левый и правый по 10px, а нижний — 40px, то можно использовать следующую форму записи:
Если верхний и нижний padding/margin одинаковы, а правый и левый padding/margin тоже одинаковы, то можно указывать только два значения. В этом примере у нас есть верхний и нижний отступы, которые равны 10px, а левый и правый отступы — по 20px. Наш CSS будет выглядеть следующим образом:
padding: TOP/BOTTOM RIGHT/LEFT; (padding: сверху/снизу справа/слева) padding: 10px 20px;
Наша последняя версия сокращенной записи для margin и padding содержит только одно значение. Эту запись можно использовать, когда все отступы (сверху, снизу, справа и слева) имеют одно и то же значение. Если бы мы хотели, чтобы все стороны имели отступы по 20px, то CSS выглядел бы следующим образом:
Когда какой формат записи использовать? Например, если нужно задать элементу только нижний отступ, я буду использовать обычную запись, так как нужно применить свойство только к одной стороне: padding-bottom: 30px;
Между этими двумя свойствами существует ощутимая разница. Padding используется для задания пространства внутри контейнера HTML-элемента. Margin используется для задания пространства вокруг внешней границы элементов.
Представьте, что padding надевает на вас зимнее пальто. Пальто часть вас, но если бы я бросил краску в вас, она покрыла бы более широкую поверхность чем, если бы на вас не было этого пальто.
Также можно думать о padding как о наполнителе в картонной коробке. Когда вы наполняете коробку пенопластом, вы удерживайте им содержимое на расстоянии от краев коробки. Padding в CSS делает то же самое.
Теперь подумайте о margin как о невидимом силовом поле вокруг вас. Силовое поле ограждает другие вещи от вас. Возвращаясь к примеру с пальто и краской, если бы я бросил в вас краску, и она была бы в состоянии пройти через силовое поле, то она по-прежнему покрыла бы только вас и ваше пальто.
Рассмотрим свойства на примерах с элементами. Мы начнем с абзаца (тега <p>), затем добавим к нему цвет фона и добавим отступ 30px с каждой стороны.
Ниже слева видно, что это абзац с padding 30px вокруг него. На изображении справа я использовал инструменты Google Chrome, чтобы показать, где padding HTML начинается /заканчивается для этого элемента. Зеленый цвет на изображении ниже – это padding, который расположен вокруг контейнера. Темно-синий цвет фона заполняет внутреннюю область:
Теперь добавим margin абзацу. Я добавлю отступ сверху и снизу 30px, а также 20px слева и справа. Ниже на изображении слева показано, как этот абзац изменился с margin. Фактическая ширина изображения стала меньше, потому что margin отталкивает от границ другой HTML элемент. Справа видно, что оранжевый цвет – это margin вокруг элемента. margin всегда находится за пределами padding и темно-синий фон не распространяется на область margin:
Данная публикация является переводом статьи «CSS PADDING VS. MARGIN AND HOW TO USE THEM» , подготовленная редакцией проекта.
Margin и Padding — в чем разница блочных моделей css?
margin
и padding
являются наиболее популярными свойствами для расстановки элементов. В то время как margin
определяет пространство за пределами (padding
определяет пространство внутри элемента.
Замените CSS-код для элемента h3 следующим:
h3 { font-size: 1.5em; background-color: #ccc; margin: 1em; padding: 3em; }
Вы заметите, что пространство шириной в один знак (margin) было оставлено около заголовка второго уровня,а сам заголовок стал толще в результате padding, равного 3 знакам.
Вы можете задавать margin
и padding
для четырех сторон элемента по отдельности: margin-top, margin-right, margin-bottom, margin-left, padding-top, padding-right, padding-bottom
и padding-left
.
Блочная модель
Margin, padding и border – это части так называемой Блочной модели. Механизм Блочной модели следующий: Посередине есть зона контента, которую окружает padding, окруженный границей border, которая в свою очередь окружена полями margin. Визуально представление Блочной модели выглядит так:
Не обязательно использовать все эти элементы, но блочная модель может использоваться с любым элементом на странице, и это мощный инструмент.
Оцени статью
ОценитьСредняя оценка / 5. Количество голосов:
Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.
Или поделись статьей
Видим, что вы не нашли ответ на свой вопрос.
Помогите улучшить статью.
Напишите комментарий, что можно добавить к статье, какой информации не хватает.Отправить
Спасибо за ваши отзыв!
Порядок и способы установки значений margin и padding и их особенности.
Свойства margin и padding в CSS имеют некоторые особенности в способах задания размеров, которые они могут принимать.
Давайте остановимся подробнее на этом вопросе, какие есть способы задания значений для свойств margin и padding.
Важно, для этих свойств очень важен порядок установки их значений. См. видео, чтобы увидеть этот самый порядок. Когда вы будете задавать значения для этих свойств, то эти свойства, в зависимости от очередности их задания, будут распределяться следующим образом:
1-е значение — верхняя часть блока.
2-е — правая часть блока.
3-е значение — нижняя часть.
4-е — к левой.
Эту картинку нужно просто «сфотографировать» у себя в голове, чтобы она «засела» у вас в памяти и когда вы будете работать с этими свойствами, чтобы вы могли ее просто вспомнить и быстро применить.
Давайте теперь посмотрим это на практике.
HTML:
<div> </div>
CSS:
.block { padding: 30px; }
См. видео, чтобы наглядно увидеть, какой эффект будут иметь разные способы задания этих значений.
Если кратко:
padding:10px 20px 30px 40px;
Внутренний отступ для верхней стороны будет 10px, для правой стороны 20px, для нижней 30px и для левой 40px. Значения распределяются в порядке по часовой стрелке.
Есть и сокращенные формы записи.
padding:30px;
Внутренний отступ применяется для всех сторон в значении 30px (верхней, правой, нижней и левой).
padding:30px 20px;
Внутренний отступ для верхней и нижней стороны применяется в значении 30px и для левой и правой стороны блока в значении 20px.
padding:30px 10px 20px;
Внутренний отступ для верхней стороны 30px, для нижней стороны 20px и боковые стороны по 10px.
Аналогично все работает для свойства margin.
Попробуйте потренироваться с заданием значений для внутренних и внешних отступов. Важно это все запомнить, т.к. применять это на практике приходится очень и очень часто.
Свойства margin , padding , строчные и блочные элементы.
Давайте рассмотрим, что такое margin и padding и какие между ними различия. Margin это внешний отступ элемента, а padding внутренний.
Если мы имеем два блока один в одном и для внутреннего блока нужен отступ мы используем свойство padding. Но если у нас есть два блока
расположенные радом друг с другом и нужно задать отступ между ними, мы используем свойство margin.Обращаем внимание что для первой картинки могут быть использованы как padding так и margin. Разница в том, что как говорилось ранее padding это внутренний отступ и для размещения внутреннего блока свойство padding задается наружному блоку. Margin работает примерно так же, но наоборот, задается внутреннему блоку для отступа от наружного.
<style>
.blok-verhniy{padding-top: 10px; padding-right: 10px; padding-bottom:
10px; padding-left: 10px; }
</style>
<body>
<div>
<div></div>
</div>
</body>
И пример с использованием margin:
<style>
.blok-vnytreniy{margin-top: 10px; margin-right: 10px; margin-bottom:
10px; margin-left: 10px; }
</style>
</head>
<body>
<div>
<div></div>
</div></body>
Пример для второй картинки:
<style>
.blok-right{margin-left: 15px;}
</style>
</head>
<body>
<span></span >
<span></span ></body>
Рассматривая эти свойства на практике более сильным приоритет будет обладать свойство margin в отличии от свойства padding. Но для внутреннего отступа желательно использовать свойство padding.
Padding-top:значение; Margin- op:значение;
Padding-right:значение; Margin-right:значение;
Padding-bottom:значение; Margin-bottom:значение;Padding-bottom:значение; Margin-bottom:значение;
Значения этим свойствам задаются в: px, %, em и тд. Например: Padding-top:25px; Также существует сокращенная запись margin и padding.
4 значения: задаются отступы для всех сторон элемента в такой последовательности: сверху, справа, снизу, слева:
padding: 2px 4px 5px 10px;
margin: 2px 4px 5px 10px;
3 значения: задается отступ сначала для верхней стороны, потом одновременно для левой и правой, а затем – для нижней:
padding: 3px 6px 9px;
margin: 3px 6px 9px;
2 значения: задаются отступы сначала одновременно от верхней и нижней стороны, а затем – одновременно для левой и правой:
padding: 6px 12px;
margin: 6px 12px;
1 значение: задаются одинаковые отступы для всех сторон элемента:
padding: 3px;
margin: 3px;
Строчные и блочные элементы.
Отличие строчных от блочных элементов в том-что блочных элементы на веб-странице начинается с новой строки и идут друг под другом, имеет вид прямоугольника и занимает всю его ширину. Высота блочного элемента зависит от его содержимого. Строчный элемент идут в одну строку. Сколько строчных элементов будет в строке зависит от размера строчного элемента.
К блочным элементам относятся тэги:
<address>, <blockquote>, <div>, <fieldset>, <form>, <h2>,…,<h6>, <hr>, <ol>,
<p>, <pre>, <table>, <ul>
и элементы у которых значение display задано как block, list-item, table.
К строчным элементам относятся тэги: <img>, <span>, <a>, <q>, <code> и элементы у которых значение display установлено как inline.
Как мы видим не зависимо от начального состояния элемента (сторчный или блочный) его значение можно изменить с помощью свойства display.
Если у вас появились вопросы, хотели бы записаться на урок, заказать статью(инструкцию) или приобрести видеоурок — пишите нам в: скайп: olegg.pann telegram, viber,whatsap — +380672998330 добавляйтесь на телеграмм-канал: t.me/webyk email: [email protected] мы в vk: vk.com/programing24 мы в fb: www.facebook.com/webprograming24 Обязательно оперативно ответим на все вопросы
Поделитесь в социальных сетях
Отступ сверху таблицы в html. Отступы и рамки в CSS с помощью параметров margin, padding и border. Как убрать отступы вокруг формы
Блочная верстка частенько используется при создании сайта или блога. Как следствие этого — часто требуется делать отступы у блоков. По этой причине о том, как сделать отступы в CSS подробно описано в данном уроке. Для браузера каждый тег является контейнером, у которого есть содержимое, внутренний отступ, внешние поля, а также рамка. В данном уроке мы научимся делать внутренние и внешние отступы, рассмотрим основные их параметры.
На рисунке ниже наглядно представлены параметры отступов блоков:
Как видно, отступы можно делать в четырех направлениях: верхний отступ (top), нижний отступ (bottom), левый отступ (left) и правый отступ (right). В качестве единиц измерения могут быть пиксели, проценты и другие единицы CSS — подробнее о них . В уроке используются пиксели.
Внутренние отступы блоков
За внутренние отступы в CSS отвечает свойство padding . Итак, давайте рассмотрим пример задания внутренних отступов у блока:
padding-top: 5px; /*верхний внутренний отступ*/ padding-left: 8px; /*левый внутренний отступ*/ padding-right: 8px; /*правый внутренний отступ*/ padding-bottom: 5px; /*нижний внутренний отступ*/
В данном примере внутренние отступы задаются отдельно для каждой стороны блока. Кроме этого, существует несколько способов задания отступов в CSS:
margin: 5px 8px 5px 8px; /*верхний, правый, нижний, левый внешние отступы*/ margin: 5px 8px 5px; /*описывает верхний, левый и правый, нижний отступы*/ margin: 5px 8px; /*описывает верхний и нижний, правый и левый отступы*/ margin: 7px; /*описывает все внутренние отступы по 7px*/
Запомнить проще первый и последний способы. В первом случае отступы ставятся по часовой стрелке (верхний, правый, нижний, левый) — величину отступа мы можем указать любую, в последнем случае отступы со всех сторон будут одинаковые.
Внешние отступы блоков
За внешние отступы в CSS отвечает свойство margin . Примеры внешних отступов в CSS:
margin-top: 5px; /*верхний внешний отступ*/ margin-left: 10px; /*левый внешний отступ*/ margin-right: 10px; /*правый внешний отступ*/ margin-bottom: 5px; /*нижний внешний отступ*/
padding: 5px 10px 5px 10px; /*верхний, правый, нижний, левый внешние отступы*/ padding: 5px 10px 5px; /*описывает верхний, левый и правый, нижний отступы*/ padding: 5px 10px; /*описывает верхний и нижний, правый и левый отступы*/ padding: 7px; /*описывает все внешние отступы по 7px*/
Таким образом, как сделать отступы в CSS — вопрос не сложный, но весьма актуальный. Чтобы лучше усвоить описанную выше информацию следует запомнить, что существует два свойства: padding — внутренние отступы и margin — внешние отступы. Также, как вы уже знаете, способов задания отступов существует несколько, можно их использовать.
Веб-ресурс оценивается пользователями по его внешней привлекательности. Поэтому даже информационно полезный текст может быть не прочитан из-за того, что он некачественно оформлен. Вывод — нужно тщательно и внимательно подходить не только к смысловому содержанию страниц сайта, но и к его визуальному представлению. Появление технологии CSS расширило возможности создания привлекательных статей. Одно из свойств, предназначенных для облегчения восприятия написанного — отступ текста CSS.
Поля и отступы: в чём разница?
Прежде чем начинать форматировать текст, следует разобраться, что такое поля и отступы. Несмотря на то что эти элементы разметки в ряде случаев выглядят для пользователя одинаково, между ними существуют принципиальные различия:
- поле задаётся свойством padding , отступ — margin ;
- поле определяется промежутком между содержимым и границей блока, отступ — между границами соседних блоков;
- поля могут как учитываться в размерах элемента (ширине и высоте), так и нет.
Свойство margin
Итак, чтобы задать горизонтальный или вертикальный отступ текста CSS, используют конструкцию margin . Данное свойство применяется к тегу задающего абзац документа. В самом простом случае оно записывается как:
margin: 12px.
Такая строчка означает, что вокруг блока текста (или любого другого блока) со всех сторон будет сделан отступ в 12 пикселей. Чтобы увеличить промежуток, например, в три раза, достаточно записать:
margin: 36px.
Но что делать, если интервал между блоками должен быть разный с каждой стороны? Разработчики веб-страниц используют несколько форм записи:
- margin: 11px 22px.
- margin: 11px 22px 33px.
- margin: 11px 22px 33px 44px.
В первом примере от нижней и верхней границ блока будут сделаны отступы по 11 пикселей, по бокам блока — по 22 пикселя. Согласно второй форме записи, между верхним краем блока и контентом будет 11 пикселей, между нижним — 33 пикселя, по бокам — по 22 пикселя. В третьем случае отступ будет иметь значение 11 пикселей сверху, 22 пикселя справа, 33 пикселя снизу и 44 пикселя слева.
Также доступна возможность записи расстояния до границы блока только с одной стороны: margin-top, margin-bottom, margin-left, margin-right . Переведя названия свойств на русский язык, несложно догадаться об их назначении. Например, следующая запись говорит о том, что отступ справа будет равен 22 пикселя:
margin-right: 22рх.
Для остальных сторон расстояния вокруг блока принимаются равными значению элемента-родителя.
Свойство margin имеет особенность, которую должен помнить разработчик, когда использует отступ текста CSS по вертикали. Интервалы соседних элементов не суммируются, а налагаются друг на друга. Например, пусть один из блоков имеет margin-bottom: 15px , а примыкающий к нему снизу блок margin-top: 35px . Школьная арифметика и здравый смысл подсказывают, что общий отступ между ними будет 50 пикселей. На практике это не так. Блок с большим значением свойства margin «поглотит» своего соседа. В итоге интервал между элементами будет 35 пикселей.
«Красная» строка
Оформляя документ в текстовом редакторе, пользователи предпочитают задавать каждый новый абзац с помощью «красной» строки. С помощью CSS отступ текста слева несложно сделать — используется конструкция text-indent . Записывается она так:
text-indent: 11px.
То есть первая строка абзаца будет сдвинута относительного левого края на 11 пикселей. Чтобы текст на веб-странице больше походил на документ в редакторе, следует дополнительно установить то есть записать:
text-indent: 11px;
text-align: justify.
Помимо пикселей, при описании разметки допускается использование других единиц — дюймов, пунктов, процентов. Пусть блок имеет отступ текста CSS, равный 10%. При ширине блока, равной 500 пикселям, красная строка будет составлять 50 пикселей (10% от 500).
Для данного свойства может быть выставлено значение inherit . Такая запись говорит, что блок использует аналогичное свойство родительского блока.
text-indent: inherit.
Удивительно, но может принимать и отрицательные значения! В этом случае формируются так называемые выступы, то есть основной текст остаётся на месте, а первая строка смещается влево на 22 пикселя:
text-indent: -22px.
Чтобы буквы не перешли за левую границу браузера, дополнительно к text-indent нужно использовать конструкцию для задания поля:
padding-left: 22px.
Основные свойства CSS для рассмотрены. А закрепить их поможет практика. Вот несколько заключительных советов, как применять изученный материал при разработке веб-сайтов:
- красная строка и отступ текста — разные понятия, и для их указания используются разные свойства;
- для вертикальных отступов правила математики не действуют — интервалы накладываются, «побеждает» элемент с большим значением;
- отрицательный абзацный отступ используют, чтобы указать первую строку абзаца с помощью изображения.
Аня написала следующий код (пример 1) и получила страницу, показанную на рис. 1. Но Ане нужно, чтобы не было отступов между блоками, а также справа и слева от блоков. Какие изменения в код для этого требуется внести?
Между заголовком и основным текстом слишком большой отступ, как его уменьшить?
К абзацу (тег
) и заголовку (тег
Когда требуется установить абзацный отступ, лучше всего использовать стилевое свойство text-indent . Его значение определяет насколько сдвинуть текст первой строки вправо от исходного положения. Ширина текстового блока при этом не меняется и остается исходно заданной. Величину отступа можно указывать в пикселах, процентах или других доступных единицах (пример 1).
Как убрать отступ сверху и снизу от списка?
Используйте стилевое свойство margin-top (отступ сверху) и margin-bottom (отступ снизу) для селектора UL или OL , в зависимости от типа списка. Также можно воспользоваться универсальным свойством margin .
Как изменить отступы на веб-странице?
Отступы на веб-странице хотя и не видны, но не позволяют содержимому плотно прилегать к краям окна браузера, чтобы обеспечивать комфортность чтения. Свое собственное значение отступов можно установить, изменяя значения свойства margin у селектора body .
Как убрать отступы вокруг формы?
При добавлении формы через тег
вокруг нее сверху и снизу автоматически добавляются отступы. Чтобы их убрать, используйте стилевое свойство margin с нулевым значением, добавляя его к селектору FORM .Как изменить расстояние между абзацами текста?
При использовании тега
Автоматически добавляются отступы сверху и снизу от текстового абзаца. Это сделано для того, чтобы визуально отделить один блок текста от следующего. Понятно, что значения отступов, которые заданы по умолчанию, устраивают не всегда, поэтому иногда их приходится уменьшать или увеличивать. Для этого можно использовать универсальное свойство margin , оно определяет отступы со всех сторон абзаца или margin-top для отступа сверху и margin-bottom — для отступа снизу.
Описание
CSS свойство margin-top устанавливает внешний отступ сверху элемента. Отступом является расстояние от внешнего края верхней границы текущего элемента до внутренней границы его родительского элемента либо до границы элемента, расположенного над ним. Обратите внимание, для строчных элементов (display : inline;) могут быть установлены только внешние отступы с левой и с правой стороны.
Размер внешнего верхнего отступа можно указывать в пикселях (px), процентах (%) или в других единицах измерения CSS . Значение может быть как положительным, так и отрицательным.
Примечание: нижний или верхний внешний отступ дочернего элемента может влиять на общую высоту родительского элемента, если у него не задан фиксированный размер высоты.
Объединение полей
- Поля сестринских элементов, расположенных один под другим и находящихся в потоке документа, объединяются в одно общее. Высота полученного поля равняется высоте большего из двух полей, например: поле верхнего элемента (margin-bottom) составляет 10px , а нижнего элемента (margin-top) — 20px , единое поле в этом случае будет высотой 20px .
- Объединение полей родительского и дочернего элемента, находящихся в потоке документа, происходит, если родительский элемент не имеет ничего из того, что могло бы отделять его внешний отступ от внешнего отступа дочернего элемента (рамки, внутреннего отступа или строчного содержимого). Также объединение полей не будет происходить, если родительскому элементу установить свойство overflow со значением hidden или auto . Плюс от этого способа заключается в том, что размер родительского элемента не увеличивается.
Задача
Убрать отступы вокруг маркированного или нумерованного списка.
Решение
Используйте стилевое свойство margin и padding с нулевым значением для селектора UL или OL , в зависимости от типа списка, как показано в примере 1.
Пример 1. Отступы в списке
HTML5 CSS 2.1 IE Cr Op Sa Fx
Отступы в списке- Чебурашка
- Крокодил Гена
- Шапокляк
Результат данного примера показан на рис. 1.
Рис. 1. Список без вертикальных и горизонтальных отступов
Обратите внимание, что исчезают маркеры списка, которые оказываются за левым краем веб-страницы. Чтобы убрать только верхний и нижний отступ, не сдвигая при этом список влево, используйте свойства margin-top и margin-bottom (пример 2).
Пример 2. Отступы в списке
HTML5 CSS 2.1 IE Cr Op Sa Fx
Отступы в списке- Чебурашка
- Крокодил Гена
- Шапокляк
Свойства контура CSS
Контур — это линия, проведенная за пределами границы элемента.
Этот элемент имеет черную рамку и зеленый контур шириной 10 пикселей.
Попробуйте сами »
Схема CSS
Контур — это линия, которая проводится вокруг элементов ВНЕ границ, чтобы элемент «выделялся».
CSSимеет следующие свойства структуры:
-
контурный стиль
-
цвет контура
-
ширина контура
-
контур-офсет
-
контур
Примечание: Контур отличается от бордюров! В отличие от границы, контур нарисован за пределами границы элемента и может перекрывать другое содержимое.Кроме того, контур НЕ является частью размеров элемента; общая ширина и высота элемента не зависит от ширины контура.
Стиль контура CSS
Свойство outline-style
определяет стиль контура,
и может иметь одно из следующих значений:
-
пунктирный
— определяет пунктирный контур -
штриховой
— определяет штриховой контур -
solid
— определяет сплошной контур -
double
— определяет двойной контур -
канавка
— определяет трехмерный контур канавки -
гребень
— Определяет трехмерный гребенчатый контур -
inset
— Определяет контур 3D-вставки -
outset
— Определяет трехмерный начальный контур -
нет
— не определяет контур -
скрытый
— Определяет скрытый контур
В следующем примере показаны различные значения в стиле контура :
Пример
Демонстрация различных стилей контура:
п.пунктирная {outline-style: dotted;}
p.dashed {outline-style: dashed;}
p.solid {outline-style: solid;}
p.double {outline-style: double;}
p.groove {outline-style: groove;}
p.ridge {outline-style: ridge;}
p.inset {outline-style: inset;}
p.outset {наброски-стиль: начало;}
результат:
Пунктирный контур.
Пунктирный контур.
Сплошной контур.
Двойной контур.
Контур канавки.Эффект зависит от значения цвета контура.
Контур гребня. Эффект зависит от значения цвета контура.
Контур-врезка. Эффект зависит от значения цвета контура.
Начальный план. Эффект зависит от значения цвета контура.
Попробуй сам " Примечание: Ни одно из других свойств контура (о которых вы узнаете больше в следующих главах) не будет иметь ЛЮБОГО эффекта, если только стиль контура
свойство установлено!
Маржа CSS vs.Прокладка: в чем разница?
Если вы новичок в CSS, возможно, вы слышали слова «поле» и «отступ», но не совсем понимаете, что они означают и как использовать их в дизайне своего веб-сайта.
Эти концепции связаны с одним и тем же в CSS, однако есть важные фундаментальные различия в их использовании. Как только вы их полностью поймете, вы сможете принимать более обоснованные дизайнерские решения.
В чем разница между Margin и Padding в CSS?
В основном, поле - это пространство вокруг элемента , а заполнение - это пространство между элементом и содержимым внутри элемента .
Источник
Поле выходит за пределы двух соседних элементов. Каждая сторона элемента имеет размер поля, который можно изменить индивидуально. При создании зазора край отодвигает соседние элементы.
С другой стороны, отступы помещаются внутри границы элемента. Чтобы создать зазор, отступы либо увеличивают размер элемента, либо сжимают содержимое внутри. По умолчанию размер элемента увеличивается.
Если вы хотите создать разрыв путем сжатия содержимого, установите значение свойства box-sizing равным border-box (т.е.е. размер коробки: рамка ).
Когда следует использовать поля вместо заполнения?
Когда вы настраиваете макет своего дизайна, вам нужно определить, следует ли настраивать поля или отступы для достижения желаемого визуального эффекта.
Поля CSS определяют пространство вокруг элемента, поэтому поля будут использоваться для перемещения элемента вверх или вниз по странице, а также влево или вправо. Если ширина вашей страницы фиксированная, центрировать элемент по горизонтали очень просто: просто присвойте значение margin: auto .
Вы также можете использовать поля, чтобы установить расстояние между соседними элементами. Например, используйте поля, чтобы добавить пространство между изображениями или между изображением и текстовым описанием под ним.
С другой стороны, отрицательное значение поля позволит вам перекрывать элементы. Вы также можете использовать отрицательное поле для создания элемента заголовка в контейнере, для которого заданы значения заполнения, чтобы другие элементы были выровнены.
Заполнение CSS определяет, как элементы выглядят и размещаются в контейнере.Вы должны изменить отступ, если хотите создать пространство между элементом и краем контейнера или границей. Это также покажет фон контейнера вокруг элемента внутри него.
Padding также используется для изменения размера элемента. Когда вы увеличиваете значение заполнения, текст останется того же размера, но вокруг него будет больше места. Элемент также заполнит больше места внутри контейнера.
Модель CSS Box
В CSS блочная модель используется для дизайна и макета страницы.По сути, каждый элемент HTML в документе заключен в коробку.
Блок CSS состоит из поля, границы, отступов и содержимого, как показано ниже:
Источник
Назначение высоты и ширины вашим элементам станет проще, если вы разберетесь с блочной моделью CSS. Чтобы обеспечить правильное выравнивание, вам просто нужно проделать простую математику. Однако, если вы не понимаете, как работает блочная модель, у вас может получиться неаккуратный макет.
CSS Margin vs. Padding vs.Граница
Поля и отступы всегда являются частями элемента, даже если нет видимой границы. Это может сбить с толку новичков.
Это изображение иллюстрирует такой сценарий:
Источник
Два блока содержимого не имеют границы, но поля и отступы по-прежнему применяются.
Теперь давайте посмотрим на разницу между кодами CSS полей и отступов.
Как добавить поля в CSS
Каждый элемент имеет четыре поля для объявления: верхнее, правое, нижнее и левое.
Чтобы установить область полей для стороны элемента, используйте свойства margin-top, margin-right, margin-bottom, и margin-left соответственно. Вы также можете установить поля со всех четырех сторон, используя сокращенное свойство margin .
Вы можете указать свойство поля с одним, двумя, тремя или четырьмя значениями в зависимости от стороны, к которой вы хотите его применить. Если вы хотите, чтобы поля были равными со всех сторон, вам нужно применить только одно значение. В противном случае порядок значений имеет решающее значение:
- Четыре значения применяются к верхнему, правому, нижнему и левому краям.
- Три значения применяются к верхнему, правому и левому, а затем нижнему.
- Два значения применяются к верхнему и нижнему, затем правому и левому.
Каждое значение представлено как <длина> (что определяет фиксированное значение для поля), <процент> (которое определяет его как процент от ширины контейнера) или auto (что позволяет браузер выставил маржу) .
Источник
Как добавить отступ в CSS
Как и в случае с полями, область заполнения имеет четыре стороны, которые нужно объявить: верхнюю, правую, нижнюю и левую.
Чтобы установить отступы, используйте свойства padding-top, padding-right, padding-bottom, и padding-left . В качестве альтернативы вы можете использовать сокращенное свойство padding .
При использовании сокращенного свойства вы можете определить заполнение, используя одно, два, три или четыре значения следующим образом. Как и в случае с полями, со всех четырех сторон будет применяться одно значение. В противном случае порядок записи значений будет определять, к каким сторонам относится каждая из них:
- Четыре значения применяются к верхнему, правому, нижнему и левому краям.
- Три значения применяются к верхнему, правому и левому, а затем нижнему.
- Два значения применяются к верхнему и нижнему, затем правому и левому.
Каждое значение может быть представлено как <длина> (что определяет его фиксированным значением) или <процент> (которое определяет его как процент от ширины контейнера).
Источник
Последние мысли
Чтобы разнести элементы в CSS, вы обычно используете свойства margin и padding .Понимание разницы - шаг к овладению CSS. Теперь вы знаете, как установить поля и отступы с помощью сокращенного свойства, что намного быстрее, чем определение каждой стороны независимо.
В веб-дизайне и веб-разработке HTML и CSS идут рука об руку. HTML определяет структуру и семантику содержимого, а CSS устанавливает стиль и макет. Если вы новичок, мы рекомендуем полностью ознакомиться с HTML, прежде чем пытаться использовать CSS. Продолжайте возвращаться к HTML по мере изучения CSS, пока полностью не поймете HTML.После применения CSS HTML становится намного интереснее.
CSS Margin and Padding Tutorial
Свойства CSS , margin и padding , являются аспектами интервала элемента и его содержимого. Маржа - это внешнее расстояние элемента HTML от других элементов. Padding - это расстояние между внутренним содержимым от периметра элемента. Оба очень часто используются, и каждый из них может быть выражен в совокупности в терминах сторон элемента HTML.Однако их также можно использовать для определения расстояния только с одной стороны. Кроме того, оба этих свойства имеют сокращенное обозначение для определения расстояния каждой стороны.
Свойство поля CSS
Как уже упоминалось, свойство margin дает невидимую границу вокруг элемента. Это свойство очень полезно, поскольку может предотвратить переполненность. Время для примера.
ПримерОбразец текстаРезультатПример текста
Я уже установил свойство width и присвоил ему границу, чтобы вы могли лучше понять эту иллюстрацию.Хорошо, а что с 4 измерениями? Свойство поля, если оно задано сокращенно, является верхним правым нижним левым. Итак, верхний 30 пикселей, правый 20 пикселей, нижний 10 пикселей и левый 25 пикселей.
Свойство заполнения CSS
ПримерРезультатПример текстаПример текста
Теперь мы видим разницу между полями и отступами.Очевидно, наш div был больше в примере с заполнением. Это связано с тем, что заполнение свойств CSS создает промежуток между элементом div и его содержимым. Ясно, что это увеличивает размер div из-за дополнительного внутреннего интервала.
Список литературы
Логические свойства полей, границ и отступов - CSS: каскадные таблицы стилей
Спецификация логических свойств и значений определяет сопоставления по отношению к потоку для различных свойств полей, границ и заполнения, а также их сокращений.В этом руководстве мы рассмотрим это.
Если вы просмотрели главную страницу логических свойств и значений CSS, то увидите, что там перечислено огромное количество свойств. В основном это связано с тем, что для каждого поля, границы и стороны заполнения есть четыре полных значения, а также все сокращенные значения.
В спецификации подробно описаны сопоставления каждого логического значения с физическим аналогом. В таблице ниже я привел эти сопоставленные значения, предполагая, что используемый режим записи
-
horizontal-tb
- с направлением слева направо.Таким образом, внутреннее направление проходит горизонтально - слева направо - иmargin-inline-start
будет эквивалентноmargin-left
.Если бы вы использовали режим письма
horizontal-tb
с направлением текста справа налево, тогдаmargin-inline-start
было бы таким же, какmargin-right
, а в режиме вертикального письма было бы то же, что и при использованииmargin-top
.Есть также несколько дополнительных сокращений, которые стали возможными благодаря тому, что у нас есть возможность одновременно нацеливать оба блока или оба встроенных края бокса.Эти сокращения не имеют физического эквивалента.
Сопоставленные свойства полей
margin-inline-start
,margin-inline-end
,margin-block-start
иmargin-inline-end
могут использоваться вместо их физических аналогов.В приведенном ниже примере я создал два блока и добавил поля разного размера к каждому краю. Я добавил дополнительный контейнер с рамкой, чтобы поле было более заметным.
Один ящик использует физические свойства, а другой - логические.Попробуйте изменить свойство
direction
наrtl
, чтобы поля отображались справа налево, поля в первом поле останутся на том же месте, а поля во встроенном измерении второго поля. переключится.Вы также можете попробовать изменить режим записи
с
horizontal-tb
наvertical-rl
. Опять же, обратите внимание, как поля остаются на том же месте для первого поля, но меняют направление, чтобы следовать направлению текста во втором.Сокращения поля
Поскольку теперь мы можем настроить таргетинг на обе стороны блока - либо на встроенные, либо на обе стороны блока - доступны новые сокращения:
margin-inline
иmargin-block
, которые принимают два значения. Первое значение будет применяться к началу этого измерения, второе - к концу. Если вы используете только одно значение, оно применяется к обоим.В режиме горизонтального письма этот CSS применяет поле 5 пикселей к верхней части поля и поле 10 пикселей к нижней части.
.box { маржа-блок: 5px 10px; }
Примечание : Сокращенные свойства
margin-inline
иmargin-block
, поставляемые в Firefox 66. Поскольку это новые свойства, проверьте поддержку браузера перед использованием.Сопоставленные свойства заполнения для
padding-inline-start
,padding-inline-end
,padding-block-start
иpadding-inline-end
могут использоваться вместо их физических аналогов.В приведенном ниже примере у меня есть два поля, в одном из которых используются свойства физического заполнения, а в другом - свойства логического заполнения. С режимом записи
из
горизонтальный-tb
оба поля должны выглядеть одинаково.Попробуйте изменить свойство
direction
наrtl
, чтобы поля отображались справа налево. Отступ на первом поле останется на том же месте, тогда как отступ на внутреннем измерении второго поля изменится.Вы также можете попробовать изменить режим записи
с
horizontal-tb
наvertical-rl
. Опять же, обратите внимание на то, что отступы остаются на том же месте для первого поля, но переключаются, чтобы следовать направлению текста во втором.Сокращения заполнения
Как и в случае поля, существуют сокращения для заполнения с двумя значениями -
padding-inline
иpadding-block
- которые позволяют вам установить заполнение для двух встроенных и двух размеров блока, соответственно.В горизонтальном режиме письма
этот CSS применит отступы
5px
к верхней части поля и 10px отступов к низу:.box { padding-block: 5px 10px; }
Примечание : Сокращенные свойства
padding-inline
иpadding-block
, поставляемые в Firefox 66. Поскольку это новые свойства, проверьте поддержку браузера перед использованием.Свойства границы являются основной причиной того, что логические свойства и значения, похоже, имеют так много свойств, поскольку у нас есть длинные стрелки для цвета, ширины и стиля границы с каждой стороны поля, а также сокращение для установки всех сразу по три с каждой стороны.Как и в случае с полями и отступами, у нас есть отображенная версия каждого физического свойства.
В приведенной ниже демонстрации используются несколько длинных и три сокращенных значения. Как и в других демонстрациях, попробуйте изменить свойство
direction
наrtl
, чтобы поля отображались справа налево, или измените режим записис
horizontal-tb
наvertical-rl
.Новые сокращения границ
Существуют двухзначные сокращения для установки ширины, стиля и цвета блока или встроенного измерения и двухзначные сокращения для установки всех трех значений в блочном или встроенном измерении.Приведенный ниже код в режиме горизонтального письма даст вам зеленую сплошную границу 2 пикселя сверху и снизу поля и пурпурную границу с пунктиром 4 пикселя слева и справа.
.box { border-block: сплошной зеленый 2 пикселя; граница встроенная ширина: 4 пикселя; пограничный встроенный стиль: пунктирная; граница встроенный цвет: rebeccapurple; }
Примечание : эти два сокращения значений поставляются в Firefox 66, проверьте поддержку браузера перед использованием, поскольку другие браузеры, возможно, еще не реализовали их.
Свойства относительного радиуса границы потока
В спецификации относительно недавно добавлены значения относительного потока для длинных линий
радиуса границы
. Они еще не реализованы ни в одном браузере. В приведенном ниже примере в горизонтальном режиме письмарадиус верхней правой границы будет установлен равным 1em, нижней правой - 0, нижней левой - 20 пикселей и верхней левой - 40 пикселей.
.box { граница-конец-начало-радиус: 1em; граница-конец-конец-радиус: 0; граница-начало-конец-радиус: 20 пикселей; граница-начало-начало-радиус: 40 пикселей; }
В спецификации содержится предложение для четырехзначных сокращений, таких как свойство
margin
, однако окончательное решение о том, как это должно быть указано, еще не принято и обсуждается в этом выпуске.Использование любых четырехзначных сокращений, таких как поля, отступы или границы, в настоящее время будет использовать физические версии, поэтому, если важно следить за потоком документа, пока что используйте полные свойства.
Использование правил полей и отступов CSS вместо изображений-разделителей для дизайна макета
C18: Использование правил полей и заполнения CSS вместо изображений-разделителей для дизайна макетаНа этой странице:
Важная информация о методах
См. Раздел Понимание методов для критериев успеха WCAG для получения важной информации об использовании этих информационных методов и о том, как они относятся к нормативному WCAG 2.1 критерий успеха. Раздел "Применимость" объясняет объем техники и наличие техник для конкретной технология не означает, что технология может использоваться во всех ситуациях для создания контент, соответствующий требованиям WCAG 2.1.
Применимость
Все технологии, поддерживающие CSS
Этот метод относится к критерию успеха 1.1.1: Нетекстовый контент (консультативный).
Описание
Веб-дизайнеры иногда используют изображения-разделители (обычно 1x1 пиксель, прозрачные GIF-файлы) для лучший контроль над макетом, например, в таблицах или для отступа абзаца.Тем не мение, Каскадные таблицы стилей (CSS) обеспечивают достаточный контроль над макетом для замены разделителя изображений. Свойства CSS для полей и отступов можно использовать сами по себе или в комбинация для управления макетом. Свойства полей ('margin-top', 'margin-right', 'margin-bottom', 'margin-left' и сокращенное 'margin') можно использовать для любого элемента. отображается в виде блока; они добавляют пространство снаружи элемента. Обивка properties ('padding-top', 'padding-right', 'padding-bottom', 'padding-left' и сокращение 'padding') можно использовать для любого элемента; они добавляют пространство внутри элемента.
Примеры
Пример 1
Следующий пример состоит из двух частей: CSS-код, определяющий поле со всех сторон таблицы и отступы для ячеек таблицы; и HTML-код для таблица, которая не содержит изображений-разделителей и не вложена в другую таблицу.
таблица {маржа: .5em; граница-коллапс: коллапс; } td, th {padding:.4em; граница: 1px solid # 000; } ...
Заголовок | Автор | Дата |
---|---|---|
Как правильно думать о веб-стандартах | Андрей Станович | 1 апреля 2007 г. |
Ресурсы
Ресурсы предназначены только для информационных целей, без какой-либо поддержки.
Полное руководство - UX-инженер
И отступы, и поля очень важны в веб-дизайне. Это два компонента блочной модели CSS, которые создают пространство на веб-странице. Может показаться, что они имеют одинаковый эффект, но отступы и поля служат двум разным целям. Если вы не знаете, когда использовать отступы или поля, то вам повезло! В этом руководстве мы расскажем о все, что вам нужно знать о .
TL; DR? Вот краткая шпаргалка для справки:
По сути, вы хотите:
- Используйте отступ для интервала внутри элемента.
- Используйте поле для интервала между элементами.
Однако это еще не все! Давайте с самого начала рассмотрим, как это работает: блочная модель CSS.
Модель CSS Box
Когда дело доходит до разработки макета веб-страницы, модель CSS Box Model , возможно, является одной из наиболее важных концепций, которые необходимо понять. Если вы знаете, что такое CSS Box Model и как она работает, вы лучше поймете, как правильно использовать отступы и поля.
Почему это важно
Каждая веб-страница состоит только из блоков. Это правда. Даже если это не совсем похоже на коробку, это все равно коробка. Сюда также входят круги, текст и треугольники.
Для иллюстрации вот несколько вещей, которые вы можете увидеть на веб-страницах, которые вы бы не сочли прямоугольными.
Однако с точки зрения веб-браузера эти же фигуры выглядят так:
Все элементы в HTML имеют верхнюю, нижнюю, левую и правую стороны.Когда вы изображаете элементы таким образом, CSS Box Model имеет гораздо больше смысла.
Части модели коробки CSS
Модель бокса CSS состоит из 4 частей. Начиная с внутренней части поля и двигаясь наружу, у нас есть Content, Padding, Border, и Margin .
Как показано выше, отступы и поля представляют только половину блочной модели CSS. К сожалению, они оказались «невидимой» половиной, поэтому трудно понять (каламбур), в чем разница между ними.
Имея это в виду, легче объяснить разницу между заполнением и полем, если мы включим две «видимые» части модели бокса CSS: содержимое и границу .
Содержимое, граница, отступы и поля
Ниже у нас есть два тега абзаца. Наш контент можно найти между
и
. Мы также указали границу для обхода этого содержимого в CSS.HTML
Эй, посмотри на меня!
Нет, посмотри на меня!
УСС
п {
граница: 1px solid #ccc;
}
Результат
Отлично, теперь мы видим, над чем мы здесь работаем.Как поля и отступы повлияют на эти два элемента абзаца? Сделают ли они то же самое?
Давайте начнем с padding и выясним. Мы можем дать контенту немного больше «передышки» с помощью отступов.
УСС
п {
отступ: 10 пикселей;
}
Результат
И мы можем добавить пробел «между» двумя тегами абзаца, добавив поля .
УСС
п {
маржа: 10 пикселей;
}
Результат
Теперь мы создали пространство внутри и за пределами границы.С видимой рамкой легче «увидеть» разницу между заполнением и полями.
Разница между заполнением и полем
Вы можете подумать: «Итак, если я не использую рамку, то не имеет значения, использую ли я отступы или поля, верно?» На самом деле это все еще имеет значение. Есть еще некоторые различия между заполнением и полем, которые нам нужно обсудить.
Давайте посмотрим на эти различия.
Фоны с заполнением и полями
В предыдущем разделе я упоминал, что поля и отступы были «невидимыми» частями блочной модели CSS.Однако это не совсем так. Цвета фона и изображения заполняют элемент до границы , что означает, что заполнение фактически «видно», когда был применен фон.
В приведенном выше примере у нас есть два синих блока div. К левому div применено заполнение, а к правому div применено поле.
Когда применен цвет фона, становится немного более очевидным, как эти два свойства различаются.
Padding and Border Alter Dimensions. Маржа нет.
Одна из причуд блочной модели CSS заключается в том, как она влияет на размеры элемента. Например, когда вы указываете высоту и / или ширину для div, вы фактически указываете размеры только для содержимого .
Если также применяются отступы и граница, то общая ширина элемента будет увеличена сверх указанной вами.
Однако это правило не распространяется на маржу. Как вы можете видеть в приведенном выше примере, когда применяется маржа, пространство добавляется только снаружи (вокруг) значительной области.
Это увеличение размеров связано с другим свойством, которое называется box-sizing , для которого по умолчанию установлено значение «content-width». С этим параметром по умолчанию вы можете столкнуться с проблемами выравнивания, изменив размеры, границу и / или отступы. Чтобы этого избежать, при использовании границы и / или отступов рекомендуется установить размер поля border-box .
УСС
div {
размер коробки: рамка-рамка;
}
Это будет включать все границы и отступы в исходных размерах, которые вы установили.
Как насчет пространства между первыми тремя div?
Поскольку маржа применяется только к последнему div, вам может быть интересно, почему между первыми тремя div есть пробел.
Короткий ответ? Это связано с промежутком, который мы обычно оставляем между закрывающим тегом div (
Вы можете узнать больше об этом в предыдущем посте: Как сделать встроенные блочные элементы шириной до 100%.
Поля могут быть отрицательными. Заполнение невозможно.
В отличие от заполнения поля могут содержать отрицательные значения. Это позволяет нам делать некоторые интересные вещи при позиционировании элементов.
Возьмем, к примеру, контейнер в виде карточки с круглым «значком» внутри.
HTML
33
УСС
.карта {
отступ: 16 пикселей;
}
Естественно, что заполнение карточки добавит 16 пикселей пространства между ее собственными границами и значком, толкая значок внутрь.
Однако, если мы хотим разместить значок сразу за левым верхним углом карточки, мы можем добиться этого с отрицательным полем.
УСС
.badge {
маржа: -20px 0 0 -20px;
}
Результат
В CSS мы применили поле -20 пикселей к верхней и левой стороне значка.Поскольку мы идем в противоположном направлении, это приводит к наложению карты на 4 пикселя (16–20 пикселей = -4 пикселя).
Если вы попытаетесь сделать это с заполнением, это не сработает.
Маржа может быть автоматической. Набивка Cannot
Еще одна интересная особенность полей заключается в том, что они могут содержать значение auto . Авто очень удобно, когда вам нужно центрировать элементы по горизонтали.
Если вы похожи на меня, возможно, вы когда-то пытались (и потерпели неудачу) центрировать элемент на странице, задав для него значение margin-left равное 50%.
Вот как это выглядит по сравнению с автоматическим значением.
УСС
.box-1 {
маржа слева: 50%;
}
.box-2 {
маржа: 16 пикселей авто;
}
Автоматическое значение работает путем вычисления поля слева и справа, необходимого для центрирования элемента. К сожалению, это работает только из стороны в сторону. Вы не можете центрировать элемент по вертикали с помощью auto.
В отличие от поля, свойство padding не может принимать автоматическое значение.
Поля работают по-другому со встроенными элементами
Поля становятся немного странными при работе с встроенными элементами . Во всех примерах, которые мы видели до сих пор, мы имели дело с inline-block и блочными элементами. В этих случаях маржа работала, как ожидалось. Давайте добавим в микс встроенный элемент (диапазон) и посмотрим, что произойдет.
Я назову это сценарием «спанбургер / спандог».
HTML
Верхняя булочка
Delicious Span Мясо
Нижняя булочка
В приведенном выше примере у нас:
- 16 пикселей отступа на абзацах (блочные элементы)
- 16 пикселей отступа слева и справа от промежутков (встроенные элементы)
- 10 пикселей заполнения сверху и снизу промежутков
- Поле не было применено пока что.
УСС (частично)
п {
отступ: 16 пикселей;
}
охватывать {
отступ: 10 пикселей 16 пикселей;
}
Несмотря на то, что маржа не применяется, наша «Вкусная порция мяса», кажется, парит между двумя булочками. Это потому, что абзацы имеют полей по умолчанию, сверху и снизу 16 пикселей.
Но это не самое странное.
Если мы полностью удалим поле по умолчанию, произойдет что-то непредвиденное.
УСС
п {
маржа: 0;
}
Результат
Можно было бы ожидать, что булочки лежат прямо сверху и снизу мяса, но вместо этого кажется, что они сидят позади него, в результате чего получается «булочка».
Если вы присмотритесь, вы увидите, что абзацы фактически расположены сверху и снизу содержимого внутри промежутков, без учета границ. Это связано с тем, что встроенные элементы (промежутки) перемещаются с содержимым страницы.
Если мы установим для наших интервалов значение display: inline-block , наш спанбургер будет выглядеть так, как вы ожидаете.
УСС
span {
дисплей: встроенный блок;
}
Результат
Обратите внимание, что в этом примере заполнение ведет себя так, как ожидалось. Однако верхнее и нижнее поля не учитывают границы, когда они касаются встроенных элементов.
Заполнение ведет себя иначе и со встроенными элементами
Верхнее и нижнее отступы во встроенных элементах тоже игнорируются….вроде.
HTML
Эй, это текст абзаца без промежутка
Эй, это текст абзаца с span внутри
Эй, это текст абзаца без промежутка
УСС
span {
фон: # 666;
отступ: 45 пикселей;
}
Это поведение немного странное. При использовании inline-block или блочных элементов отступы будут учитывать содержимое вокруг себя и отталкиваться от него.Как вы можете видеть в приведенном выше примере, действительно происходит с с содержимым по обе стороны диапазона.
Как было показано ранее, это поведение происходит таким же образом с верхним и нижним полями встроенных элементов. Однако с заполнением все по-другому, потому что верх и низ не исчезают, а просто игнорируются.
Чтобы сделать вещи еще более странными, верхнее заполнение полностью исчезает, когда вы удаляете первый и третий теги абзаца, но нижнее заполнение остается.
Как и в случае с большинством других особенностей встроенных элементов, мы можем получить «ожидаемое» поведение, установив для диапазона значение display: inline-block .
УСС
span {
дисплей: встроенный блок;
}
Падение маржи
Обрушение полей, вероятно, один из самых запутанных аспектов CSS. Некоторые даже считают это одной из величайших дизайнерских ошибок CSS.
Понимание схлопывания полей - не самая сложная часть.Путаница вокруг коллапса маржи в основном связана с кажущимися бесконечными исключениями из этих правил.
Давайте посмотрим на пример:
Каждый из этих div установлен на display: inline-block и имеет поле 20 пикселей. Поскольку поля невидимы, трудно сказать, но, как и следовало ожидать, поля для каждого div соприкасаются друг с другом. Это делает фактическим отступом между каждым div 40px.
Для справки, вот как выглядит поле для одного div в инструментах разработчика Chrome.
Вы, вероятно, ожидали бы такого же поведения, если бы каждый div был установлен на отображение : блок , верно? Ну что ж, посмотрим.
УСС
div {
дисплей: блок;
}
Результат
Для каждого div, установленного на display: block , верхнее и нижнее поля сворачиваются. Чтобы уточнить, теперь между каждым блоком div пространство между ними составляет 20 пикселей, а не 40 пикселей.
Решение для этого? В подобных случаях я считаю полезным полагаться только на одно поле между элементами.Например, если вы хотите, чтобы между элементами всегда было 40 пикселей, вы можете попробовать вместо этого:
УСС
div {
маржа: 0 40px 40px 0;
}
Без определения верхнего или левого поля они никогда не будут перекрываться (в этом случае). Таким образом, вы будете иметь одинаковый интервал при изменении настроек отображения.
Заключение
Эффективное использование белого пространства важно для обеспечения фокусировки, читабельности, иерархии и понимания.Без отступов и полей хороший дизайн пользовательского интерфейса был бы невозможен. Однако важно не путать их. Они никогда не предназначались для взаимозаменяемости.
Заполнение и поле имеют две разные цели. Заполнение используется для интервала внутри элемента . Поле используется для интервала между элементами. Однако, как мы видели, у обоих определенно есть свои причуды. Понимание этих различий, а также связанных с ними причуд поможет вам понять, когда использовать отступы или поля.
Если вам понравилось это руководство, подумайте о подписке на UXE Weekly. Я буду присылать вам самые свежие материалы для UX Engineer каждый понедельник!
CSS и интервалы | поля, отступы и типы отображения в CSS
Путь // www.yourhtmlsource.com → Таблицы стилей → CSS И ПРОБЕЛ
Итак, теперь у вас есть страница и весь текст, стилизованный и отформатированный так, как вы хотите. Теперь пришло время дать частям вашей страницы возможность дышать, разместив их с помощью полей и отступов.Отныне вы сможете разносить все части страницы с точностью до пикселя.
Навигация по страницам:
Блочная модель CSS
· Маржа
· Набивка
· Ошибка IE5
| Типы отображения элементов
Эта страница последний раз обновлялась 21.08.2012
Модель коробки CSS
Коробочная модель - очень важная концепция, которую вы должны иметь прямо в голове, прежде чем приступить к работе со всеми этими проблемами с интервалами. Все элементы уровня блока HTML имеют пять свойств интервала: высота, ширина, поле, граница и отступ .При обсуждении этих атрибутов вам понадобится диаграмма, чтобы увидеть, о какой части интервала мы говорим. Взгляните на диаграмму ниже и проверьте три области , которые окружают каждый элемент страницы уровня блока . Вместе они образуют коробку , которую занимает элемент.
CSS Borders обсуждаются в отдельном руководстве. Как видите, поля устанавливают внешний интервал, а внутренние отступы - . Если бы ширина полей, границы и отступов была равна 0, прямоугольник был бы прямо вокруг элемента.Вы можете управлять каждой из трех переменных интервалов независимо.
При использовании этих свойств мы в основном работаем с тегом Поля, границы и отступы по умолчанию - все 0 , поэтому, когда вы оборачиваете Все элементы блочного уровня также имеют свойства width и height.Поля, границы и отступы, которые вы добавляете к каждому элементу, затем добавляются к этим размерам . Допустим, вы определяете абзац, p {width: 600px; отступ: 5 пикселей; } Этот абзац займет 610 пикселей по горизонтали на странице, поскольку с каждой стороны добавляется отступ в 5 пикселей. Чтобы установить поле общей ширины вокруг поля, используйте выражение вроде blockquote {margin: 20px; } Это отодвинет все от элемента на 20 пикселей во всех направлениях.При желании вы можете установить различный размер поля с каждой стороны поля, добавив суффикс к той стороне, которую вы хотите изменить. Итак, p {margin-left: 2px; маржа сверху: 80 пикселей; поле справа: 45 пикселей; нижнее поле: -5 пикселей; } Единицы, доступные вам, такие же, как всегда. При указании отдельных сторон устанавливать каждое значение не требуется. Ваш браузер установит оставленные значения со значением по умолчанию для этой стороны, как и всегда. Поля можно добавлять ко всему - таблицам, графике, тексту; земельный участок.Кроме того, как указано выше, вы можете присвоить элементу отрицательное поле . Ваш браузер имеет встроенную таблицу стилей по умолчанию и дает поля для определенных элементов, таких как формы и заголовки. Установив для них значение 0 в таблице стилей, вы можете убрать пространство по умолчанию, которое помещается после этих элементов. Отрицательные поля также позволяют накладывать элементы друг на друга, но это не лучший способ сделать это из-за несоответствий в браузере и того, что у вас есть - используйте позиционирование для достижения всего этого. Тег body {margin: 0px; отступ: 0 пикселей; } Лучше всего добавить правила полей и заполнения, поскольку браузеры еще не пришли к соглашению о том, какое свойство вызывает пространство. Оставьте атрибуты HTML. sourcetip: - это обычная ошибка, когда единицы измерения не указываются в объявлении пробелов, например div {margin: 3; }. Отсутствие определения единиц означает, что ваш браузер не будет знать, что делать, и проигнорирует правило. Всегда не забывайте добавлять px, em или что-то еще. Существует также сокращенное свойство поля , которое отлично подходит, если вы устанавливаете каждую сторону по-разному.Последовательность идет по часовой стрелке сверху - сверху, справа, снизу, слева. div {margin: 20px 0px 100px 10px; } Обратите внимание, что между значениями есть просто пробелы, а не точки с запятой. Padding работает практически так же, как и поле, за исключением того, что находится внутри любых границ, которые вы установили. Вы используете те же единицы измерения и можете влиять на каждую сторону отдельно, как и раньше, но вы не можете использовать отрицательные значения для заполнения. В любом случае это не имело бы никакого смысла.Вы также можете использовать сокращенное свойство для заполнения, идентичное тому, которое используется для полей. Вот код: div.header {padding: 6px; padding-bottom: 2px; отступ слева: 18 пикселей; } Вот и мы. Теперь возьмите границы и познакомьтесь с позиционированием, и вы смеетесь. Одна очень заметная ошибка, которая вызвала большое разочарование среди новой волны дизайнеров, знающих о коробочных моделях, - это неправильная интерпретация коробочной модели в Internet Explorer 5.Допустим, мы определяем абзац как таковой: p {width: 650px; отступ: 10 пикселей; маржа: 2 пикселя; ширина границы: 1px; } В хорошо настроенном браузере этот абзац будет иметь ширину 676 пикселей (продолжайте, разберитесь сами). Однако в IE5 он будет иметь ширину всего 654 пикселя, а свойства границы и заполнения будут отображаться как часть ширины, а не добавляться к ней. Microsoft решила пренебречь стандартами и создать собственную коробочную модель. Надо сказать, их одна логичнее стандартизированной модели W3C, но теперь это считается ошибкой в IE5, поскольку IE6 поддерживает правильную реализацию.К счастью, есть решение, хотя во рту остается неприятный привкус «хака». Все это объясняет Тантек Челик на своей »странице взлома модели коробки. Возможно, нелегко разобраться с этим; и, очевидно, неудобство, но то, что вы обязательно должны включить, поскольку IE5 все еще довольно широко используется. К настоящему моменту вы должны знать о различных типах элементов HTML - блочного и встроенного - где элементы уровня блока (например, имеет мощное свойство display , которое позволяет изменять способ отображения элемента. Вы можете сделать так, чтобы встроенный элемент отображался как элемент уровня блока или наоборот. Итак, у нас могла бы быть строка вроде p {display: inline; } При этом все ваши абзацы будут отображаться как одна длинная строка, поскольку они больше не являются элементами уровня блока. Применение этого к маркированному списку может иметь некоторые интересные эффекты: ul li {display: inline; } Посмотрите исходный код.В коде HTML, приведенный выше, закодирован как неупорядоченный список, но мы можем сделать его линеаризованным, изменив его свойства отображения. Благодаря этому вы можете использовать правильно структурированную разметку списка, не делая ее похожей на список. div
вокруг больших блоков текста и убрать стиль. div
s используются для создания того, что раньше было известно как слоев , и может использоваться в качестве замены табличного макета.Мы полностью перейдем к этому в CSS Layout. div
вокруг некоторого текста, между его краями и текстом не остается места. div
элементы строго подчиняются блочной модели, в то время как добавление отступов и т. Д. К ячейкам таблицы может интерпретироваться браузерами немного более свободно. Ширина по умолчанию для всех блочных элементов составляет 100%. Высота элемента полностью зависит от его содержимого. Маржа
body
сам по себе имел некоторые поля по умолчанию с момента зарождения HTML.Раньше мы избавлялись от них с помощью атрибутов topmargin
и marginheight
и др. - очень нестандартный способ решения проблем. Теперь мы можем избавиться от этого пространства вокруг вашей страницы с помощью простого объявления CSS:
Единственный раз, когда можно не указывать единицу, - это когда вы устанавливаете что-то на ноль. отступ: 0; является допустимым объявлением, так как ноль равен нулю, независимо от того, каким образом вы его разрежете. Набивка
Ошибка IE5
Типы отображения элементов
h2
) добавляют разрывы строк вокруг себя, в то время как встроенные элементы (например, em
) могут быть введены в страницу, не вызывая слишком больших сбоев.