Как формируются в css размеры блока?

Сегодня я вам расскажу о свойствах, которые формируют в css размеры блока. Если вы думали, что это только width и height, то есть ширина и высота, то вы глубоко заблуждаетесь. Но сначала обо всем поподробнее.

Свойства для задания размеров в css

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

<div class = "red">Какой-нибудь текст в блоке</div>

И применим к нему эти самые свойства + фон, чтобы его было видно.

.red{
	width: 300px;
	height: 130px;
	background: red;
}

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

Внутренние отступы и рамки и их влияние на размер

Добавим нашему блоку внутренние отступы (padding) слева и справа по 20 пикселей. Это можно сделать такой строчкой:

padding: 0 20px;

Сначала определяются отступы снизу и сверху, а потом — по бокам. Что получается?
padding и влияние на размер
Видим, что текст уже не прилегает вплотную к краям блока, а сам он стал шире на 40 пикселей, потому что с каждой стороны добавилось по 20. Соответственно, если бы мы добавили еще отступы сверху и снизу, увеличилась бы также высота элемента.

Теперь давайте добавим рамку блоку.

border: 10px solid black;

рамка
Теперь мы видим, что блок стал больше на 10 пикселей с каждой стороны. Из этого делаем вывод, что рамка тоже влияет на величину блока. Как вы помните, изначальные размеры блока были 300 пикселей по ширине и 130 — по высоте. Теперь же вы получите 360 пикселей в ширину и 150 в высоту. Если посчитать все отступы и рамку, то именно столько и получится.

Итог

При верстке сайта вы должны учитывать все это. Если вы указываете размер блока как 100%, после чего назначаете ему отступы или рамку, то в своих реальных размерах он перестанет помещаться в ту область, в которой находится. Чтобы в ширине учитывались отступы и рамки, нужно прописать такое свойство:

box-sizing: border-box;

Это одно из новых свойств в css3, поэтому лучше его прописывать с вендорными префиксами. Что это такое, читайте здесь.

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

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

Что ж, на этом у меня вся информация на сегодня. Учитывайте эти свойства, либо используйте box-sizing.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: