Отступы и поля в html. Поля и отступы CSS: отличия свойств margin и padding. Два измерения выравнивания

Для Windows Phone 22.03.2019
Для Windows Phone

Математика в CSS не работает. Например, есть заголовок (тег h1) и за ним следует абзац (тег p). Оба элемента блочные, из чего следует, что их ширина равна элементу-родителю и в потоке они расположены один под другим. Также представим, что заголовок имеет нижнее поле (margin-bottom) равное 30px, а абзац – верхнее поле (margin-top) равное 50px. Казалось бы, промежуток между заголовком и абзацем должен быть равен сумме этих двух полей, то есть 80px, однако нет. Соседние поля не складываются, браузер просто выбирает наибольшее из двух значений, в нашем случае 50px. Поэтому, если вы хотите сделать промежуток между двумя элементами при участии двух элементов, используйте отступы (padding).

Заголовок. Присутствует нижнеее поле в 30px

Абзац. Есть верхнее поле в 50px

Или вот ситуация: в блоке div лежит абзац (тег p), у абзаца присутствуют верхнее и нижнее поля (margin-top и margin-bottom) равные 50px. Казалось бы, под действием этих полей блок div должен расшириться, однако нет. Поля выступают за пределы блока div (рис. 1). Данный эффект называется конфликтом полей. Чтобы избежать выхода поля за пределы блочного элемента, необходимо элементу-родителю (в нашем случае тегу div) назначить верхний и нижний отступы (padding) равные, например, 1 px. Или границу (border).

Абзац. Есть верхнее и нижнеее поле в 50px


Или вы можете использовать свойство overflow для элемента-родителя со значением отличным от visible: этим вы также предотвратите выход поля элемента-ребенка за пределы элемента-родителя.

Модуль CSS Box Alignment определяет CSS-функции, которые относятся к выравниванию ящиков в различных моделях макета CSS: макет блока, макет таблицы, гибкая макет и макет сетки. Модуль нацелен на создание согласованного метода выравнивания по всем CSS. В этом документе описываются общие понятия, содержащиеся в спецификации.

Примечание : Документация для каждого метода макета будет подробно описана, как там применяется шкала выравнивания.

Старые методы выравнивания

У CSS традиционно были очень ограниченные возможности выравнивания. Мы могли выровнять текст, используя text-align , центральные блоки, используя auto margin s, а в макетах таблицы или встроенного блока, используя vertical-align свойство. Выравнивание текста теперь покрывается модулями Inline Layout и CSS Text , и впервые в Box Alignment мы имеем полные возможности горизонтального и вертикального выравнивания.

Пример выравнивания раскладки сетки CSS

В этом примере с использованием Grid Layout, в контейнере сетки есть дополнительное пространство после прокладки фиксированных дорожек ширины на основной оси. Это пространство распределяется с помощью justify-content . На блочной (поперечной) оси выравнивание элементов внутри их областей сетки контролируется с помощью align-items . Первый элемент переопределяет значение элементов выравнивания, заданное в группе, путем установки align-self в центр.

Пример выравнивания Flexbox

В этом примере три элемента гибкости выровнены по главной оси с использованием justify-content и на поперечной оси с использованием align-items . Первый элемент переопределяет align-items , заданные в группе align-self по center .

Ключевые понятия и терминология

Спецификация описывает некоторую терминологию выравнивания, чтобы упростить обсуждение этих свойств выравнивания вне их реализации в рамках конкретного метода компоновки. Существуют также некоторые ключевые концепции, которые являются общими для всех методов макета.

Связь с режимами записи

Выравнивание связано с режимами записи, когда мы выравниваем элемент, который мы не рассматриваем, если мы сопоставляем его с физическими размерами сверху, справа, снизу и слева. Вместо этого мы описываем выравнивание с точки зрения начала и конца конкретного измерения, с которым мы работаем. Это гарантирует, что выравнивание работает так же, как в режиме записи, который имеет документ.

Два измерения выравнивания

При использовании свойств выравнивания ячеек вы выровняете содержимое по одной из двух осей - inline (или main) оси и block (или cross) оси. Внутренняя ось - это ось, по которой используются слова в потоке предложения в режиме записи - для английского языка, например, встроенная ось горизонтальна. Ось блока - это ось, вдоль которой выложены блоки, такие как элементы абзаца, и проходит по оси Inline.

При выравнивании элементов на встроенной оси вы будете использовать свойства, начинающиеся с justify- :

При выравнивании элементов на оси блока вы будете использовать свойства, которые начинаются с align- :

Flexbox добавляет дополнительное усложнение в том, что указанное выше верно, когда flex-direction установлено в row . Свойства меняются местами, когда flexbox установлен в column . Поэтому при работе с flexbox легче думать о главной и поперечной оси, а не о линии и блоке. Свойства justify- всегда используются для выравнивания по главной оси, align- на поперечной оси.

The alignment subject

Объект выравнивания - это то, что выровнено. Для justify-self , или align-self , или при настройке этих значений как группы с justify-items или align-items это будет поле элемента, в котором используется это свойство. Свойства justify-content и align-content различаются для каждого метода макета.

The alignment container

Контейнер выравнивания - это поле, в котором объект выравнивается внутри. Обычно это будет блок, содержащий объект выравнивания. Контейнер выравнивания может содержать один или несколько объектов выравнивания.

На приведенном ниже рисунке показан контейнер выравнивания с двумя объектами выравнивания внутри.

Fallback alignment

Если вы установите выравнивание, которое не может быть выполнено, тогда возвратное выравнивания вступит в игру и обработает доступное пространство. Это резервное выравнивание указывается отдельно для каждого метода макета и подробно описано на странице для этого метода.

Типы выравнивания

Существует три различных типа выравнивания, которые специфицируют детали; они используют значения ключевых слов.

  • Positional alignment (выравнивание положения): указание положения объекта выравнивания относительно его контейнера выравнивания.
  • Baseline alignment (исходное выравнивание): эти ключевые слова определяют выравнивание как взаимосвязь между базовыми линиями нескольких объектов выравнивания в контексте выравнивания.
  • Distributed alignment (распределенное выравнивание): эти ключевые слова определяют выравнивание как распределение пространства между объектами выравнивания.

Значения ключевых слов позиционирования

Следующие значения определены для позиционного выравнивания и могут использоваться в качестве значений для выравнивания содержимого с justify-content и align-content , а также для самовыравнивания с justify-self и align-self .

  • center
  • start
  • self-start
  • self-end
  • flex-start for Flexbox only
  • flex-end for Flexbox only
  • right

Помимо физических значений left и right , которые относятся к физическим атрибутам экрана, все остальные значения являются логическими значениями и относятся к режиму записи содержимого.

Например, при работе в CSS Grid Layout, если вы работаете на русском языке и устанавливаете для него значение justify-content start , это приведет к перемещению элементов в встроенном измерении в начало, которое будет левым, поскольку предложения на русском начинаются слева. Если вы использовали арабский язык, право на левый язык, то одно и то же значение start приведет к тому, что элементы перемещаются вправо, так как предложения на арабском языке начинаются с правой стороны страницы.

Оба этих примера имеют justify-content: start , однако местоположение начала изменяется в соответствии с режимом записи.

Исходное выравнивание

Ключевые слова выравнивания базовой линии используются для выравнивания базовых линий ящиков по группе субъектов выравнивания. Они могут использоваться в качестве значений для выравнивания контента с помощью justify-content и align-content , а также для самовыравнивания с justify-self и align-self .

  • baseline
  • first baseline
  • last baseline

Исходное выравнивание содержимого - указание значения выравнивания базовой линии для justify-content или align-content - работает в методах макета, которые содержат элементы в строках. Объекты выравнивания выравниваются по базовой линии друг к другу, добавляя в них поля.

Исходная линия выравнивания сдвигает поля для выравнивания по базовой линии путем добавления поля за пределами полей. Self alignment - это использование justify-self или align-self или при настройке этих значений в виде группы с justify-items и align-items .

Distributed alignment

Ключевые слова расспеределенного выравнивания используются с параметрами align-content и justify-content . Эти ключевые слова определяют, что происходит с каким-либо дополнительным пространством после отображения объекта. Значения следующие:

  • stretch
  • space-between
  • space-around
  • space-evenly

Например, элементы Flex Layout сначала выровнены с использованием flex-start. Работая в горизонтальном верхнем и нижнем режимах записи, таком как русский, с flex-direction в виде row элементы начинаются в крайнем левом углу и любое свободное место после отображения элементов помещается после элементов.

Если вы устанавливаете justify-content: space-between в контейнере flex, доступное пространство теперь разделяется и помещается между элементами.

Для того, чтобы эти ключевые слова вступили в силу, должно быть доступно пространство в измерении, для которого вы хотите выровнять элементы. Без места, нечего распространять.

Выравнивание переполнения

safe и unsafe ключевые слова помогают определить поведение, когда объект выравнивания больше, чем контейнер выравнивания. Ключевое слово safe будет выравниваться для start в случае заданного выравнивания, вызывающего переполнение, целью которого является избежать «потери данных», когда часть элемента находится за пределами границ контейнера выравнивания и не может быть прокручена до.

Если вы укажете unsafe , выравнивание будет выполнено, даже если это приведет к такой потере данных.

Пробелы между boxes

Спецификация выравнивания коробки также включает свойства gap , row-gap и column-gap . Эти свойства позволяют установить постоянный разрыв между элементами в строке или столбце в любом методе макета, который имеет элементы, расположенные таким образом.

Свойство gap является сокращением для row-gap и column-gap , что позволяет сразу установить эти свойства.

В предыдущей главе мы упоминали о таких свойствах CSS, как margin (поле) и padding (отступ). Теперь мы остановимся на них более подробно и рассмотрим, чем они отличаются друг от друга и какие особенности имеют.

Создавать промежутки между элементами можно и тем, и другим способом, но если padding – это отступ от содержимого до края блока, то margin – это расстояние от одного блока до другого, межблоковое пространство. На скриншоте показан наглядный пример:

Padding отделяет содержимое от границы блока, а margin создает промежутки между блоками

Как видите, поля и отступы CSS отличаются между собой, хоть иногда без просмотра кода и нельзя определить, с помощью какого свойства задано расстояние. Это случается в тех случаях, когда отсутствует рамка или фон блока с содержимым.

Для установки полей или отступов в CSS от каждой стороны элемента существуют следующие свойства:

Отступы:

  • padding-top: значение;
  • padding-right: значение;
  • padding-bottom: значение;
  • padding-left: значение;

Поля:

  • margin-top: значение;
  • margin-right: значение;
  • margin-bottom: значение;
  • margin-left: значение;

Значения могут быть указаны в любых единицах CSS – px, em, % и т. д. Пример: margin-top: 15px .

Также существует очень удобная вещь как сокращенная запись margin и padding CSS . Если вам необходимо задать поля или отступы для всех четырех сторон элемента, совсем необязательно записывать свойство для каждой стороны по отдельности. Всё делается проще: для margin и padding можно указывать сразу 1, 2, 3 или 4 значения. От количества значений зависит, как распределяются настройки:

  • 4 значения: задаются отступы для всех сторон элемента в такой последовательности: сверху, справа, снизу, слева: padding: 2px 4px 5px 10px;
  • 3 значения: задается отступ сначала для верхней стороны, потом одновременно для левой и правой, а затем – для нижней: padding: 3px 6px 9px;
  • 2 значения: задаются отступы сначала одновременно от верхней и нижней стороны, а затем – одновременно для левой и правой: padding: 6px 12px;
  • 1 значение: задаются одинаковые отступы для всех сторон элемента: padding: 3px;

Те же правила касаются и свойства margin CSS. Обратите внимание на то, что для margin можно использовать и отрицательные значения (например, -3px), которые иногда бывают весьма полезными.

Схлопывание margin

Представьте ситуацию: два блочных элемента находятся друг над другом и им заданы поля margin. Для верхнего блока установлено значение margin: 60px , а для нижнего – margin: 30px . Логично было бы предположить, что два граничащих поля двух элементов просто соприкоснутся и в итоге промежуток между блоками будет равен 90 пикселям.

Однако дела обстоят по-другому. На самом деле в такой ситуации проявляется эффект, который называют схлопыванием, когда из двух примыкающих полей элементов выбирается наибольший по размеру. В нашем примере итоговый промежуток между элементами будет равен 60 пикселям.


Расстояние между блоками равно большему из значений

Схлопывание margin работает только для верхних и нижних полей элементов и не относится к полям с правой и левой сторон. Окончательная величина промежутка высчитывается в разных ситуациях по-разному:

  • Когда оба значения margin положительные, итоговый размер поля будет равен бóльшему значению.
  • Если одно из значений является отрицательным, то для вычисления размера поля нужно получить сумму значений. Например, при значениях 20px и -18px размер поля будет равен:
    20 + (-18) = 20 — 18 = 2 пикселя.
  • Если оба значения отрицательные, сравниваются модули этих чисел и выбирается число, бóльшее по модулю (следовательно, меньшее из отрицательных чисел). Пример: необходимо сравнить значения полей -6px и -8px . Модули сравниваемых чисел равны 6 и 8 соответственно. Отсюда следует, что 6 -8 . Итоговый размер поля равен -8 пикселей.
  • В случае, когда значения указаны в разных единицах CSS, они приводятся к одной, после чего сравниваются и выбирается бóльшее значение.
  • Размер margin для дочерних элементов определяется еще более интересно: если у потомка поле margin больше, чем у родителя, то приоритет отдается ему. В этом случае размеры верхнего и нижнего полей родителя станут такими, как задано у потомка. При этом расстояния между родителем и потомком не будет.

Б локи в CSS представляют собой самостоятельный объект, имеющий форму прямоугольника. Все элементы HTML - документа представляют собой самостоятельные блоки, которые содержат любого рода информацию, будь-то текст или изображение (контент). К примеру: для элемента содержимым блока является текст , а для элемента - текст .

Вокруг контента, в блоке, могут быть пустые, не занятые поля (padding) , что кстати придает содержимому блока более привлекательный вид. Сразу за полями пролегает граница блока (border) , которая может иметь заданную толщину, цвет и стиль. Блок может иметь отступы (margin) т.е. свободное пространство вокруг границ. Поля, границы и отступы не входят в ширину блока, ширина задается только для его содержимого.

Поля. Свойства MARGIN-TOP, MARGIN-RIGHT,
MARGIN-BOTTOM, MARGIN-LEFT

Эти свойства задают величину полей вокруг блока, значения задаются в любых единицах длины или процентах:

  • margin-top - обозначает ширину верхнего поля;
  • margin-right - обозначает ширину правого поля;
  • margin-bottom - обозначает ширину нижнего поля;
  • margin-left - обозначает ширину левого поля.

Пример правила для абзаца, с полями справа и слева по 25px, будет выглядеть так:

p {
margin-top : 0px ;
margin-right : 25px ;
margin-bottom : 0px ;
margin-left : 25px ;
}

Свойство MARGIN

Это свойство - стенографическое, которое применяется для сокращенной записи выше перечисленных свойств. Свойство margin может иметь количество значений от одного до четырех:

  • если задано только одно, то поля со всех сторон блока одинаковые;
  • если заданы два значения, то первое обозначает поля сверху и снизу, второе - справа и слева (значения каждой пары равны);
  • если задано три значения, то первое обозначает верхнее поле, второе - левое и правое, третье - нижнее;
  • если заданы все четыре значения, то соответственно, первое - верх, затем - правое поле, потом нижнее и последнее - левое.
Пишем правило:

p {margin : 15px 5px 20px }

В этом примере верхнее поле абзаца будет равно 15px, правое и левое поля по 5px, нижнее поле будет 20px.

Границы. Свойства BORDER-TOP-WIDTH, BORDER-RIGHT-WIDTH, BORDER-BOTTOM-WIDTH, BORDER-LEFT-WIDTH

При помощи CSS можно заключить текст абзаца в рамку, как например это сделано на страницах сайта в виде примеров. Данные свойства задают только толщину границ блока для верхнего, правого, нижнего и левого сегментов. Значения можно задвать ключевыми словами:

  • thin - тонкая;
  • medium - средней толщины (используется по умолчанию);
  • thick - толстая.

Так же значения можно задавать в любых единицах длины, в процентах значения не задаются. Правило можно записать так:

p {
border-top-wdth : 1px ;
border-right-wdth : 2px ;
border-bottom-wdth : medium ;
border-left-wdth : thin ;
}

Свойство BORDER-WIDTH

Это стенографическое свойство, значения задаются так же как у свойства . Правило записанное ниже будет соответствовать записанному выше примеру:

p {border-width : 1px 2px medium thin }

Свойство BORDER-COLOR

Это свойство так же стенографическое, с его помощью задается границ блока, значениями являются:

  • ключевое слово (red, yellow, black, blue и т.д.);
  • шестнадцатиричный код цвета (00FFFF, 000000, FFFFFF и т.д.);
  • десятичный код в RGB (color: rgb (120, 25, 182));
  • transparent - прозрачная граница.

Если необходимо задать разные цвета каждой из четырех границ, то применяются свойства:

  • border-top-color - цвет верхней границы;
  • border-right-color - цвет правой границы;
  • border-bottom-color - цвет нижней границы;
  • border-left-color - цвет левой границы.

Правило для такого примера будет выглядеть так:

p {
border-top-color : blue ;
border-right-color : 000000 ;
border-bottom-color : FF0000 ;
border-left-color : rgb (25, 125, 205) ;
}

Свойство BORDER-STYLE

Свойство стенографическое, оно задает тип линий, которыми являются границы блока. Для задания различных типов линий, для границ блока, используются индивидуальные свойства:

  • border-top-style - тип линии верхней границы;
  • border-right-style - тип линии правой границы;
  • border-bottom-style - тип линии нижней границы;
  • border-left-style - тип линии левой границы.

Значениями свойства являются ключевые слова:

  • none - граница отсутствует (используется по умолчанию);
  • dotted - граница оформлена линией состоящих из точек;
  • dashed - пунктирная линия;
  • solid - сплошная линия;
  • double - двойная сплошная линия;
  • groove - граница отображается "вдавленной" линией (имитирует объём);
  • ridge - граница отображается "выпуклой" линией;
  • inset - граница отображается так, что весь блок выглядит вдавленным;
  • outset - весь блок выглядит выпуклым.

Посмотрим на примерах:









Стенографическое свойство border-style позволяет сокращать значения стилей для всех четырех сегментов границы, задается так же как для свойства . Пишем правило для блока с границами выполненными пунктирной линией:

p {border-style : dashed }

Свойства BORDER-TOP, BORDER-RIGHT, BORDER-BOTTOM, BORDER-LEFT

Это стенографические свойства, которые позволяют сокращенно записать значения свойств border-width , border-style и border-color , смотрим на примере:

p {
border-top : 1px solid red ;
border-right : 3px solid red ;
border-bottom : 1px solid red ;
border-left : 3px solid red
}

Границы у абзаца будут красными, выполненными сплошной линией. Вверху и внизу толщина границ 1px, справа и слева - 3px.

Свойство BORDER

Это свойство стенографическое и применяется для задания параметров всех четырех сегментов границ: ширины, цвета и стиля. Пишем пример правила:

p {border : 1px solid blue }

Граница вокруг этого абзаца будет одинаковой со всех сторон, выполненой сплошной линией синего цвета толщиной 1px.

Отступы. Свойства PADDING-TOP, PADDING-RIGHT,
PADDING-BOTTOM, PADDING-LEFT

Эти свойства позволяют задать размеры отступов для каждой стороны в отдельности, значения задаются в единицах длины или в процентах:

  • padding-top - ширина верхнего поля;
  • padding-right - ширина правого поля;
  • padding-bottom - ширина нижнего поля;
  • padding-left - ширина левого поля.

Свойство PADDING

Это стенографическое свойство, которое применяется для сокращенной записи выше описанных свойств. Свойство padding может иметь от одного до четырех значений, которые присваиваются так же как для (полей) и (границ). Запишем такое правило:

p {
background-color : white ;
border : 2px dotted blue ;
padding : 10px 25px
}

На примере получившегося абзаца посмотрим как работают отступы:

Именно от того, насколько оптимизирован сайт, зависит позиция, на которой поисковые системы будут выдавать его в результатах поиска. Чем выше эта позиция, тем больше посетителей вы получите с поисковиков. Важным этапом оптимизации является наполнение сайта качественным, уникальным контентом. Не нужно копировать с других ресурсов интересные статьи по своей тематике, повторять то, что уже есть на просторах всемирной паутины.

На этом, я считаю, что первое знакомство с каскадными таблицами стилей CSS можно закончить и самостоятельно приступить к . Этих знаний вполне хватит для начала, так что вперед, к покорению просторов гиперпространства.


То, без чего не создать сайт: ∼ ∼ Многим интересно:

Последнее обновление: 08.04.2016

Однострочное текстовое поле создается с помощью элемента input , когда его атрибут type имеет значение text:

С помощью ряда дополнительных атрибутов можно настроить текстовое поле:

    dirname : устанавливает направление текста

    maxlength : максимально допустимое количество символов в текстовом поле

    pattern : определяет шаблон, которому должен соответствовать вводимый текст

    placeholder : устанавливает текст, который по умолчанию отображается в текстовом поле

    readonly : делает текстовом поле доступным только для чтения

    required : указывает, что текстовое поле обязательно должно иметь значение

    size : устанавливает ширину текстового поля в видимых символах

    value : устанавливает значение по умолчанию в текстовом поле

Применим некоторые атрибуты:

Текстовые поля в HTML5

В этом примере во втором текстовом поле сразу устанавливаются атрибуты maxlength и size . При этом size - то есть количество символов, которые помещаются в видимое пространство поля больше, чем допустимое количество символов. Однако все равно ввести символов больше, чем maxlength, мы не сможем.

В данном случае также важно различать атрибуты value и placeholder , хотя оба устанавливают видимый текст в поле. Однако placeholder устанавливает своего рода подсказку или приглашение к вводу, поэтому он обычно отмечается серым цветом. В то время как значение value представляет введенный в поле текст по умолчанию:

Атрибуты readonly и disabled делают текстовое поле недоступным, однако сопровождаются разным визуальным эффектом. В случае с disabled текстовое поле затеняется:

Среди атрибутов текстового поля также следует отметить такой атрибут как list . Он содержит ссылку на элемент datalist , который определяет набор значений, появляющихся в виде подсказки при вводе в текстовое поле. Например:

Текстовые поля в HTML5

Атрибут list текстового поля указывает на id элемента datalist. Сам элемент datalist с помощью вложенных элементов option определяет элементы списка. И при вводе в текстовое поле этот список отображается в виде подсказки.

Поле поиска

Для создания полей поиска предназначен элемент input с атрибутом type="search" . Формально он представляет собой простое текстовое поле:

Поиск в HTML5

Поле ввода пароля

Для ввода пароля используется элемент input с атрибутом type="password" . Его отличительной чертой является то, что вводимые символы маскируются точками:



Рекомендуем почитать

Наверх