HTML\CSSШирина содержимого DIV: width:100% vs width:auto

width задает ширину содержания. Общая ширина блока затем складывается из трёх компонентов: ширины содержания, внутренних отступов и ширины рамок слева и справа.

По-умолчанию, при width:auto блок занимает всю ширину родительского блока. При увеличении внутренних отступов ширина содержимого автоматически уменьшается, а общая ширина остается равной ширине родителя.

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

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

<div class="block1">
    <div class="block2"></div>
</div>
.block1 { width: 500px; }
.block2 { height: 300px; }
Читать далее...

HTML\CSSВыпадение внешних отступов

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

000306156

Если у родительского элемента тоже был задан внешний отступ, то выберется максимальный отступ между собственным и «выпавшим».

Читать далее...

HTML\CSSСхлопывание внешних отступов

Вертикальный отступ между двумя соседними элементами равен максимальному отступу между ними.

000306155

Если отступ одного элемента равен 20px, а второго 40px, то отступ между ними будет 40px. Этот эффект называется эффектом схлопывания внешних отступов.

Читать далее...

HTML\CSSБлочная модель CSS

Элементы HTML страницы делятся на блочные и строчные. Порядок отображения элементов на странице называется потоком документа. Блочные элементы отображаются как прямоугольные области, идущие друг за другом сверху вниз, а строчные элементы располагаются слева направо и сверху вниз и при необходимости переносятся на новую строку.

Строчные элементы предназначены для оформления текста на уровне небольших фраз и отдельных слов. Блочные же элементы предназначены для разметки крупных блоков текста (заголовки, абзацы, списки) и создания сетки.

1. Блочные элементы display:block

  1. Блочные элементы занимают 100% доступного пространства по ширине.
  2. Блочным элементам можно задавать ширину, высоту, внутренние и внешние отступы.
  3. До и после блочного элемента существует перенос строки.

К блочным элементам относятся: <div>, <p>, <h1>, <h2>,<ul> и т.д.

Читать далее...