Использование CSS для центрирования изображений и других HTML объектов

Использование CSS является наиболее оптимальным способом центрирования изображений, блоков текста и даже всего дизайна веб-страницы. Большинство свойств для HTML align стали доступны в CSS, начиная с версии 1.0. Они отлично работают с CSS3 и современными веб-браузерами:

485246373

Применения CSS для центрирования в HTML

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

CSS можно использовать, чтобы:

  • Центрировать текст;
  • Центрировать блочный элемент (например, div);
  • Центрировать изображение;
  • Вертикально центрировать блок или изображение.

Много лет назад веб-дизайнеры могли использовать <center> для центрирования изображений и текста. Но теперь этот тег признан устаревшим и больше не поддерживается современными браузерами. Это вызвано тем, что современные сайты должны иметь четкое разделение структуры и стилей.

Советы по центрированию с помощью CSS

HTML используется для создания структуры, а CSS определяет стили. Так как центрирование – это визуальная характеристика, то оно осуществляется с помощью каскадных стилей.

Центрирование текста с CSS

Проще всего центрировать текст на веб-странице. Чтобы это сделать, нужно всего одно свойство: HTML text align:

p.center { text-align: center; }

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

Применения этого класса:

<p class="center">This text is centered.</p>

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

Центрирование блоков контента с помощью CSS

Блоками являются любые элементы на странице, которые устанавливаются как элементы уровня блока и имеют определенную ширину. Часто такие блоки создаются с помощью <div>.

Наиболее распространенный способ центрирования блоков – это задать для левого и правого отступов значение auto:

div.center {
 margin: 0 auto;
  width: 80em;
}

Это сокращенная форма свойства margin установит для верхнего и нижнего отступа значение 0, а левый и правый отступы будут использовать значение auto. Таким образом занимается все доступное место и делится равномерно между двумя сторонами, что равносильно HTML div align.

Применение в HTML:

<div class="center">This entire block is centered,
but the text inside it is left aligned.</div>

Поскольку блок имеет определенную ширину, он будет центрирован внутри содержащего его элемента. Текст, находящийся в этом блоке, будет выровнен не по центру, а по левому краю. Так как по умолчанию в браузерах текст выравнивается по левому краю. Чтобы текст был также выровнен по центру, используйте свойство text-align, которое мы описывали ранее.

Центрирование изображений при помощи CSS

Большинство браузеров отобразят изображения по центру при использовании свойства HTML text align. Но не стоит полагаться на этот метод, так как он не рекомендован W3C.

Вместо этого следует явно указать браузеру, что изображение является элементом уровня блока. Вот код CSS для этого:

img.center {
 display: block;
  margin-left: auto;
  margin-right: auto;
}

Вот HTML код для изображения, которое нужно центрировать:

<img src="blwebcam-sample.jpg" alt="Suni" class="center">

Также можно центрировать объекты с помощью встроенного CSS:

<div style="text-align: center;">

Вертикальное центрирование элементов с помощью CSS

HTML vertical align всегда было проблематичным в веб-дизайне, но с выходом спецификации CSS Flexible Box Layout Module в CSS3, появилось решение для этой задачи.

Вертикальное выравнивание работает также как и горизонтальное, описанное выше. Свойство vertical-align со значением middle:

.vcenter {
  vertical-align: middle;
}

Недостатком этого подхода является то, что не все браузеры поддерживают CSS FlexBox. Если есть проблемы с более ранними версиями браузеров, W3C рекомендует центрировать текст вертикально в контейнере, используя следующий метод:

  • Поместите элементы, которые нужно центрировать, внутрь элемента-контейнера, такого как div;
  • Задайте минимальную высоту элементу-контейнеру;
  • Объявите элемент-контейнер;
  • Установите для HTML vertical align значение middle.

Например:

.vcenter {
  min-height: 12em;
  display: table-cell;
  vertical-align: middle;
}

HTML код:

<div class="vcenter">
<p>This text is vertically centered in the box.</p>
</div>

Вертикальное центрирование и ранние версии Internet Explorer

Существует несколько способов заставить IE центрировать объекты, а затем воспользоваться условными комментариями. Хорошая новость заключается в том, что в связи с недавним решением Microsoft отказаться от поддержки старых версий IE эти браузеры должны скоро исчезнуть, тем самым облегчив для веб-дизайнеров использование таких современных подходов к разметке как CSS FlexBox.

Перевод статьи «Use CSS to Center Images and Other HTML Objects» был подготовлен дружной командой проекта Сайтостроение от А до Я.