etxt banner 468x60etxt banner 728x90etxt banner 930x180skillbox banner 468x60skillbox banner 728x90skillbox banner 930x180beget banner 468x60beget banner 728x90beget banner 930x180

Руководство по выравниванию элементов в CSS

Текст внутри блочных элементов можно выровнять, правильно настроив выравнивание текста с помощью text-align.

h1 {
    text-align: center;
}
p {
    text-align: left;
}

Смотрите Руководство по форматированию текста в CSS, чтобы узнать больше о форматировании текста.

Выравнивание по центру с помощью auto margin

Выравнивание по центру блочного элемента является одним из наиболее важных следствий CSS-свойства margin. Например, контейнер <div> можно выровнять по центру по горизонтали, установив для левого и правого полей значение auto.

div {
    width: 50%;
    margin: 0 auto;
}

Правила в приведенном выше примере выравнивают элемент <div> по горизонтали по центру.

Значение auto для свойства margin не будет работать в Internet Explorer 8 и более ранних версиях, если не указан <!DOCTYPE>.

Выравнивание элементов с помощью свойства position

CSS-свойство position вместе со свойством left, right, top и bottom можно использовать для выравнивания элементов относительно области просмотра документа или содержащего родительский элемент.

.up {
    position: absolute;
    top: 0;
}
.down {
    position: absolute;
    bottom: 0;
}

Чтобы узнать больше о позиционировании элементов, см. Руководство по свойству position в CSS.

Выравнивание влево и вправо с помощью свойства float

CSS-свойство float может использоваться для выравнивания элемента слева или справа от содержащего его блока таким образом, чтобы другой контент мог обтекать его с другой стороны.

Следовательно, если элемент перемещается влево, содержимое будет обтекать вдоль его правой стороны. И наоборот, если элемент перемещается вправо, содержимое будет обтекать вдоль его левой стороны.

div {
    width: 200px;
    float: left;
}

Очистка (clear) плавающего элемента (float)

Одна из самых запутанных вещей в работе с разметкой на основе плавающего элемента — это сворачивающийся (collapsed) родительский элемент. Родительский элемент не растягивается автоматически для размещения плавающих элементов.

Тем не менее, это не всегда очевидно, если родительский элемент не содержит визуально заметного фона или границ, но важно помнить об этом, чтобы предотвратить странное поведение макета и кросс-браузерную проблему. Смотрите иллюстрацию ниже:

Как видите, элемент <div> не растягивается автоматически для размещения «плавающих» изображений. Эту проблему можно исправить, очистив float после плавающих элементов в контейнере, но перед закрывающим тегом элемента контейнера.

Есть несколько способов исправить эту проблему с коллапсом (collapsed) родительского CSS. Вот несколько решений вместе с живыми примерами.

Решение 1: Float для Container

Самый простой способ решить эту проблему — переместить содержащий родительский элемент.

.container {
    float: left;
    background: #f2f2f2;
}

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

Решение 2: Использование пустого Div

Это старомодный способ, но это простое решение, которое работает во всех браузерах.

.clearfix {
    clear: both;
}
/* html code snippet */
<div class="clearfix"> </div>

Вы также можете сделать это с помощью тега <br>. Но этот метод не рекомендуется, поскольку он добавляет не семантический код в вашу разметку.

Решение 3: Использование псевдоэлемента :after

Псевдоэлемент :after в сочетании со свойством content довольно широко используется для решения проблем очистки элементов float.

.clearfix:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}

Класс .clearfix применяется к любому контейнеру с плавающими дочерними элементами.

Internet Explorer IE7 не поддерживает псевдоэлемент :after. IE8 поддерживает, но требует объявления <!DOCTYPE>.

jivo banner 480x320jivo banner 728x90jivo banner 120x600kwork banner 480x320kwork banner 728x90kwork banner 120x600beget banner 480x320beget banner 728x90beget banner 120x600

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 2 / 5. Количество оценок: 6

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Руководство по свойству opacity в CSS

CSS-свойство opacity означает непрозрачность и теперь является частью спецификаций CSS3. Старые браузеры имеют разные способы управления непрозрачностью. Opacity в Firefox, Safari, Chrome, Opera и IE9 Вот самый простой синтаксис для назначения непрозрачности CSS во всех современных браузерах. Приведенное выше правило сделает элемент абзаца непрозрачным на 70% (или прозрачным на 30%). Свойство opacity принимает значение от…
Подробнее

Руководство по таблицам в CSS

Таблицы обычно используются для отображения каких-либо упорядоченных табличных данных. После того, как вы создали HTML-таблицу, с помощью CSS вы можете значительно улучшить ее внешний вид. CSS предоставляет несколько свойств, которые позволяют вам управлять компоновкой и представлением элементов таблицы. В этом разделе вы увидите, как использовать CSS для стилизации таблиц. Добавление границ (border) в таблицы CSS-свойство…
Подробнее

Руководство по свойству margin в CSS

CSS-свойство margin позволяют вам установить интервал вокруг границы элемента (или края блока элемента, если у него нет определенной границы). На цвет элемента не влияет цвет фона background-color, он всегда прозрачен. Однако, если родительский элемент имеет цвет фона, он будет виден через область margin. Margin для отдельных сторон Вы можете установить margin для отдельных сторон используя…
Подробнее