CSS :: Внешние отступы
http://belarusweb.net
Основы создания сайтов

CSS :: Внешние отступы элементов

Под внешним отступом элемента подразумевается расстояние от границы (стороны) текущего элемента до соответствующей границы (стороны) родительского элемента либо до соответствующей границы (стороны) соседнего элемента. Для установки внешних отступов используются ненаследуемые свойства margin, margin-top, margin-right, margin-left, margin-bottom (см. пример №1). В качестве значений принимаются величины отступов в любых допустимых в CSS единицах измерения, включая отрицательные значения, а также процентах, которые рассчитываются относительно ширины области содержимого родительского элемента (не ширины самого элемента). Имеется возможность указать в качестве значения параметр auto, который указывает браузеру на автоматическое определение отступов.

HTML Результат BwCodes
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">  
	<meta name="robots" content="noindex">
	<title>Определение внешних отступов элементов</title>

	<style>

		p{
		width: 500px;
		padding: 1em;
		border: solid 2px green;
		background-color: violet;
		}

		/* Внешние отступы в одном объявлении */
		.all_in_one{
		margin: 50px 0px 50px 100px;
		}		

		/* Внешние отступы по отдельности */
		.separate{
		margin-top: 50px;
		margin-right: 0px;        
		margin-bottom: 50px;		
		margin-left: 100px;
		}
	 
	</style>
	
</head>
<body>
	<p  class="all_in_one">
		Внешние отступы в одном объявлении<br>
		margin: 50px 0px 50px 100px;
	</p>

	<p  class="separate">
		Тоже самое, но по отдельности<br>
		margin-top: 50px;<br>
		margin-right: 0px;<br>        
		margin-bottom: 50px;<br>		
		margin-left: 100px;
	</p>	
</body>
</html>

Пример №1. Определение внешних отступов элементов

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

Внешние отступы нельзя устанавливать элементам, для которых свойство display имеет одно из значений: table-row-group, table-header-group, table-footer-group, table-row, table-column-group, table-column.

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

Также следует отметить, что у элемента 'body' по умолчанию присутствуют внешние отступы, которые отсчитываются относительно края окна браузера. На практике, в процессе верстки страниц для их обнуления можно использовать распространенный прием, показанный в примере №2. Дело в том, что разные браузеры могут по-разному задавать внутренние и внешние отступы элементов, что может приводить к нежелательным эффектам для веб-мастера. Поэтому лучше обнулить все отступы и задавать их самостоятельно в зависимости от конкретной ситуации.

/* Обнуляем отступы */
*{
margin: 0;		  /* Обнуляем внешние отступы */
padding: 0;		  /* Обнуляем внутренние отступы */
outline: 0;		  /* Обнуляем толщину внешней границы */
}

/* Остальные стили */

Пример №2. Обнуление внешних отступов элементов

Быстрый переход к другим страницам