- Разница между 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 113
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>