CSS-макет — горизонтальное и вертикальное выравнивание


Горизонтальное и вертикальное выравнивание по центру


Выравнивание элемента по центру

Чтобы выровнять элемент (например, <div>) по центру по горизонтали, можно использоватьmargin: auto;。

Установка ширины элемента предотвратит его выход за края контейнера.

Элемент центрируется путем указания ширины и равномерного распределения пустых отступов с обеих сторон:

Элемент div выровнен по центру


Пример

.center { margin: auto; width: 50%; border: 3px solid green; padding: 10px; }

Попробуйте сами »

Примечание:Если не задать свойствоwidth(или задать его как 100%), центрирование не сработает.


Выравнивание текста по центру

Если вы хотите выровнять по центру только текст внутри элемента, можно использоватьtext-align: center;

Выравнивание текста по центру


Пример

.center { text-align: center; border: 3px solid green; }

Попробуйте сами »

Совет:Дополнительные примеры выравнивания текста см. вCSS Textглаве.


Выравнивание изображения по центру

Чтобы выровнять изображение по центру, можно использоватьmargin: auto;и поместить его вблочныйэлемент:

Paris

Пример

img { display: block; margin: auto; width: 40%; }

Попробуйте сами »

Выравнивание влево/вправо — с помощью позиционирования

Мы можем использоватьposition: absolute;свойство для выравнивания элементов:

Пример руководства -- Обучение — это не только технологии, но и мечты!!!


Пример

.right { position: absolute; right: 0px; width: 300px; border: 3px solid #2167AD; padding: 10px; }

Попробуйте сами »

Примечание:Абсолютно позиционированные элементы удаляются из нормального потока и могут перекрывать другие элементы.

Совет:При использованииpositionпри выравнивании элементов обычно<body>элемент будет задаватьmarginиpadding. Это поможет избежать видимых различий в разных браузерах.

При использовании свойства position в IE8 и более ранних версиях есть проблема. Если у элемента-контейнера (в нашем случае <div class="container">) задана ширина и пропущено объявление !DOCTYPE, то IE8 и более ранние версии добавят дополнительный margin 17px с правой стороны. Похоже, это пространство, зарезервированное для полосы прокрутки. При использовании свойства position всегда указывайте объявление !DOCTYPE:


Пример

body { margin: 0; padding: 0; } .container { position: relative; width: 100%; } .right { position: absolute; right: 0px; width: 300px; background-color: #b0e0e6; }

Попробуйте сами »

Выравнивание по левому/правому краю — использование метода float

Мы также можем использоватьfloatсвойство для выравнивания элементов:

Пример

.right { float: right; width: 300px; border: 3px solid #2167AD; padding: 10px; }

Попробуйте сами »

При таком выравнивании элементов рекомендуется заранее задать margin и padding для элемента <body>. Это позволяет избежать видимых различий в разных браузерах.

Примечание: если высота дочернего элемента больше высоты родительского элемента и для дочернего элемента задано float, то дочерний элемент выйдет за пределы. В этом случае можно использовать "clearfix(очистка float)" для решения этой проблемы.

Мы можем добавить overflow: auto; к родительскому элементу, чтобы решить проблему переполнения дочернего элемента:

Пример

.clearfix { overflow: auto; }

Попробуйте сами »

При использовании свойства float в IE8 и более ранних версиях есть проблема. Если опустить объявление !DOCTYPE, то IE8 и более ранние версии добавят дополнительный внешний отступ 17px справа. Похоже, это место, зарезервированное для полосы прокрутки. При использовании свойства float всегда задавайте объявление !DOCTYPE:

Пример

body { margin: 0; padding: 0; } .right { float: right; width: 300px; background-color: #b0e0e6; }

Попробуйте сами »

Вертикальное выравнивание по центру — использование padding

В CSS есть много способов добиться вертикального центрирования. Простой способ — использовать в верхней части заголовкаpadding:

Я центрирован по вертикали.


Пример

.center { padding: 70px 0; border: 3px solid green; }

Попробуйте сами »

Если вы хотите центрировать и по горизонтали, и по вертикали, можно использоватьpaddingиtext-align: center:

Я центрирован и по горизонтали, и по вертикали.


Пример

.center { padding: 70px 0; border: 3px solid green; text-align: center; }

Попробуйте сами »

Вертикальное центрирование — с помощью line-height

Я центрирован по вертикали.


Пример

.center { line-height: 200px; height: 200px; border: 3px solid green; text-align: center; } /*Если текст занимает несколько строк, добавьте следующий код:*/ .center p { line-height: 1.5; display: inline-block; vertical-align: middle; }

Попробуйте сами »

Вертикальное центрирование — с помощью position и transform

Помимо использованияpaddingиline-height,кроме этого свойства, мы также можем использоватьtransformсвойство для установки вертикального центрирования:


Пример

.center { height: 200px; position: relative; border: 3px solid green; } .center p { margin: 0; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }

Попробуйте сами »

Совет:Для получения дополнительной информации о свойстве transform можно обратиться кглаве «2D Flip»。


Другие примеры

CSS: центрирование div с помощью margin

CSS: выравнивание div по правому краю с помощью абсолютного позиционирования

Другие расширения