Конфликты полей (margin) в CSS. Поля и отступы в CSS. Значения ключевых слов позиционирования

Padding-top

Со структурой блока, надеюсь, Вы уже знакомы. Если нет, то она представлена ниже.

Структура блока

И так. Вам уже, наверное, известно, что поля и отступы у блока представлены свойствами padding и margin соответственно. И в предыдущей статье мы уже частично затронули эту тему. На этой странице немного подробнее рассмотрим поля (padding ) и отступы (margin ).

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

Итак. Поля задаются свойством padding . Это внутренние расстояния от границ блока до его содержимого.

Свойство применимо ко всем элементам.

Расстояние задается в единицах длины, принятых в CSS , в % , либо (по умолчанию

Свойство padding является универсальным, так как устанавливает поля от границ элемента до его содержимого для всех его сторон, объединяя таким образом в себе свойства padding-top , padding-right , padding-bottom и padding-left , которые задают ширину полей для каждой из сторон элемента индивидуально.

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

Свойство margin также применимо ко всем элементам.

Отступы также задаются в единицах длины, принятых в CSS , в % , либо (по умолчанию ) определяется браузером автоматически.

Свойство margin является универсальным, так как задает величину отступов от границ элемента для всех его сторон, объединяя таким образом в себе свойства margin-top , margin-right , margin-bottom и margin-left , которые устанавливают ширину отступов от каждой из границ элемента индивидуально.

И еще : отступы (margin ) располагаются за пределами блока, в то время как поля (padding ) внутри его, поэтому фон блока или его фоновое изображение распространяются только на поля, а отступы всегда прозрачны, либо имеют фон основного (родительского ) блока или фон страницы.

Фрагмент кода:



; ">

Таблица располагается внутри контейнера с красной границей и синим фоном.


Ширина отступов от границы таблицы до красной границы контейнера составляет 10 пикселей.


В ячейке слева расположено изображение. Отступы от изображения до границ ячейки составляют 25 пикселей.


Поля правой ячейки составляют 10 пикселей!


Б локи в 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 можно закончить и самостоятельно приступить к . Этих знаний вполне хватит для начала, так что вперед, к покорению просторов гиперпространства.


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

Поля и отступы являются очень важными стилями при построении HTML-страницы. Они позволяют более точно спозиционировать элементы, создать каркас с необходимыми зазорами и т.п. Оба стиля очень похожи и выполняют схожие функции. Но отличия все же есть.

Элементы могут быть вложенными, могут находиться по соседству друг от друга. Давайте рассмотрим следующий пример:

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

Поля задаются стилем padding . Этот стиль применим только к элементам-контейнерам, которые могут содержать в себе другие элементы. Стиль позволяет задать значение полей между краями элемента и его содержимым. Стиль margin позволяет задать отступы от элемента до ближайших границ другого элемента. Границами другого элемента могут быть границы родительского контейнера, а также края самой страницы.

Существует несколько способов задания этих стилей. Например, непосредственно указать размер всех полей или отступов одним аргументом в какой-нибудь единице измерения (px, ex, em, pt, cm и так далее):

padding : 3px ; margin : 3px ;

В этом случае поля и отступы будут со всех четырех сторон одинаковы. При задании двух аргументов через пробел:

padding : 3px 5px ; margin : 3px 5px ;

первый будет определять величину полей/отступов сверху и снизу, второй - слева и справа. При задании трех аргументов:

padding : 3px 5px 2px ; margin : 3px 5px 2px ;

первый - поле/отступ сверху, второй - одновременно слева и справа, третий - снизу. При четырех аргументах:

padding : 3px 5px 2px 6px ; margin : 3px 5px 2px 6px ;

первый - поле/отступ сверху, второй - справа, третий - снизу, четвертый - слева. Легко запомнить: первый - сверху, далее по часовой стрелке. Кроме того, можно задавать поля и отступы для конкретного края отдельно, с помощью соответствующих стилей: padding-top , padding-right , padding-bottom , padding-left , margin-top , margin-right , margin-bottom , margin-left . Значением этих стилей может быть только один аргумент, задающий величину поля/отступа для данной стороны.

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

padding : 5px ;

В результате страница изменит вид к следующему:

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

margin-top : 5px ;

Заметьте, что отступ мы задаем именно таблице, а не ячейке таблицы, как в случае с полями. Вот результат:

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

HTML-код подопытной страницы:

<html > <head > <title > Тест</ title > <meta http-equiv = "Content-Type" content = "text/html;charset=utf-8" > </ head > <body > <style > table {width: 200px; height: 150px; border: 1px solid #555; border-collapse: collapse} td {vertical-align: top; padding: 0px} div {width: 100px; height: 100px; background: red} </ style > <table style = "background: lime" > <tr > <td style = "padding: 5px" > <div style = "margin: 0px" > </ div > </ td > </ tr > </ table > <table style = "background: skyblue; margin-top: 5px" > <tr > <td > </ td > </ tr > </ table > </ body > </ html >

Математика в 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: этим вы также предотвратите выход поля элемента-ребенка за пределы элемента-родителя.




Top