- Разница между padding и margin
- padding раздвигает div, увеличивает его ширину и высоту. А если это не нужно?
- Для каждой стороны свой padding и margin
- Чем отличаются padding и margin для блочных и встроенных элементов
- Проценты у padding и margin
- Значение auto у margin
- Горизонтальный отрицательный margin
- Вертикальный отрицательный margin
- Схлопывание margin между родителем и дочерними элементами
- Схлопывание margin между смежными элементами
- Отступ для абзаца CSS (свойство text-indent)
- Для ячеек таблицы margin не используется, там есть border-spacing
- Можно убрать фон с отступа padding
- Практическое задание: что лучше padding или margin при вёрстки адаптивного сайта с не резиновой боковой колонкой?
Разница между padding и margin
В CSS есть два казалось бы похожих свойства: padding и margin [w3.org]. Первое создаёт отступы вокруг содержимого, второе расширяет поле до границы элемента, в том числе отрицательные.
padding
margin
margin
img {
display: block;
background: #3872ef;
padding: 1230px;
margin: -1230px;
}
padding раздвигает div, увеличивает его ширину и высоту. А если это не нужно?
существует свойство CSS box-sizing
box-sizing
padding
border
padding
border
текст текст
div {
width: 80%;
height: 80%;
background: #3872ef;
padding: 10px;
border: 10px solid #ffff00;
box-sizing: contentpaddingborder-box;
}
Для каждой стороны свой padding и margin
значение устанавливает отступы и поля одновременно для четырёх краёв элементапервое значение определяет вертикальные отступы и поля, второе - горизонтальныепервое значение задаёт отступы и поля для верхней, второе - для правой и левой, третье - нижней сторонызначения поочерёдно используются для верхнего, правого, нижнего и левого края
padding
margin 1
img {
display: block;
background: #3872ef;
padding: 0;
padding-top: 0;
padding-right: 0;
padding-bottom: 0;
padding-left: 0;
margin: 0;
margin-top: 0;
margin-right: 0;
margin-bottom: 0;
margin-left: 0;
}
Чем отличаются padding и margin для блочных и встроенных элементов
display
padding
margin
padding
margin
при display: inline; padding не увеличивает высоту элемента HTML, margin не смещает его вверх и вниз
span {
display: block;
background: rgba(56, 114, 239, 0.7);
padding: 15px;
margin: 15px;
}
Проценты у padding и margin
значение высчитывается из ширины родителя, а не от его высоты. Практическое применение.img {
background: rgba(56, 114, 239, 0.7);
padding: 10%;
margin: 10%;
}
Значение auto у margin
для 'margin-top' и 'margin-bottom' значение 'auto' приравнено к значению '0' [w3.org]. А для 'margin-left' и 'margin-right' значение 'auto' размещает по центру или прижимает к правому (левому) краю элемент в горизонтальной плоскости, то есть выравнивает элемент по горизонтали. Работает только для блочных тегов, для встроенных существует его аналог text-align.
margin
img {
display: block;
margin: 10px 10px 10px auto;
}
Отрицательный margin
Горизонтальный
возьмём несколько картинок



img {
vertical-align: middle;
margin: 0 0 0 -16px 0 0 -32px 32px 0 -32px;
}
Вертикальный
display
margin-top
margin-bottom
margin-top
margin-bottom
<style>
.parent:before { /* убрать схлопывание с родителем (без поддержки IE6 и IE7, более подробная версия) */
content: "";
display: table;
}
.green {
display: inline-block; /* при расчёте поля учитывается line-height родителя, в примере она 25.6px */
width: 100%;
height: 10px;
background: green;
margin: -10-55100px 0 -10-55100px;
}
.blue {
height: 10px;
background: blue;
}
</style>
<div class="parent">
<div class="green"></div>
<div class="blue"></div>
</div>
| margin-top | margin-bottom | описание |
|---|---|---|
| - | - | margin-top игнорируется |
| - | + | сначала элемент поднимается на высоту margin-bottom, но не выше значения margin-top, затем отодвигает вниз соседа на остаток (при его наличии) |
| 0 | - | элемент двигается вниз |
| + | - | margin-top больше margin-bottom: элемент двигается вниз, сосед смещается на значение margin-bottom margin-top меньше margin-bottom: margin-top игнорируется |
53 комментария:
Не нужно всё знать, достаточно знать где посмотреть как нужно делать. Ещё мне Mozilla помогает. Правая кнопка просто бесценна и экономит кучу времени.
первое значение определяет горизонтальные отступы и поля, второе - вертикальные"
Ошибочка. первое значение это верх-низ, второе - стороны. Счет начинается всегда сверху и всегда первое значение будет - верх, а без пары еще и низ.
http://shpargalkablog.ru/2010/12/pomenyat-fon-gadzhetov-blogger.html
http://shpargalkablog.ru/2010/09/sdelat-otstup-dlya-abzatsa-blogger.html
.main-inner .column-center-inner, .main-inner .column-left-inner, .main-inner .column-right-inner {
padding: 0;
}
.section {
margin: 0;
}
А блог этот я пока настраиваю.
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<style>
.jump-link:before {
content: '\A';
white-space: pre;}
</style>
</b:if>
или
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<style>
.jump-link {
padding-top: 10px;}
</style>
</b:if>
<b:if cond='data:blog.url == data:blog.homepageUrl'>
выберите удобный вариант http://shpargalkablog.ru/2011/02/uslovnye-tegi-v-blogger.html
/* Variable definitions
====================
напишем:
Но раздел Variable definitions я удалил, куда теперь писать?
Стили для ссылки "Подробнее":
В разделе Content (общий вид) добавляем код:
.jump-link {
font: normal bold 11px/15px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
}
Не уверен, что это правильно, работает...
div div {
display: inline-block;
}
или
div div {
position: relative;
top: 100px;
margin: 0 auto;
}
Не залезая в шаблон, а просто редактируя пост.
<style>
.post-body.entry-content {
padding-left: 20%;
}
</style>
Тут главное правильно выбрать селектор, две статьи в помощь:
1) http://shpargalkablog.ru/2014/05/see-html.html
2) http://shpargalkablog.ru/2011/10/css-selectors.html
Можно также всё содержимое статьи взять в <div id="myBlock"></div> Тогда селектор будет #myBlock а код
<style>
#myBlock {
padding-left: 20%;
}
</style>