Выравнивание по центру div по вертикали: Все способы вертикального выравнивания в CSS / Хабр

Как выровнять блок по центру экрана



Задача выровнять блок по центру дисплея.

Что бы выровнять блок по горизонтали, достаточно прописать стиль text-align: center;
Он будет в центре экрана, но только лишь по горизонтали.
Что бы блок был в центре всего экрана, нужно использовать правило FLEX.

Как это работает?
Допустим у нас есть DIV или h2:

  1. <h2>Заголовок по центру</h2>

Если нам нужно просто отцентрировать его по центру используем следующий стиль:

  1. .heading {

  2. text-align: center;

  3. }

Но если нужно по середине всего экрана, то тогда нам нужно обернуть это все дело в контейнер DIV:

  1. <div>

  2. <h2>Название лендинга</h2>

  3. </div>

с использованием стилей для контейнера блок:

  1. . block{

  2. height: 100vh;

  3. display: flex;

  4. justify-content: center;

  5. align-items: center;

  6. }

Задаем нашему блоку высоту 100vh, установить значение display равному flex, а также зададим свойствам justify-content и align-items равному center.

Теперь наш заголовок расположиться ровно по центру экрана, как по горизонтали, так и по вертикали.

Загрузка

2156 просмотров

07.06.2018

Теги: css


Комментариев пока нет

Оставить комментарий


Статьи


  • 1С-Битрикс (17)
  • Apache (2)
  • CSS (1)
  • HTML (1)
  • Java (2)
  • JavaScript (1)
  • JQuery (2)
  • MS-DOS (2)
  • PHP (5)
  • SEO (5)
  • Windows (1)
  • Безопасность (2)
  • Браузер (2)
  • Заработок / Работа (2)
  • Новые технологии (2)
  • Операторы связи (6)
  • Платежные системы (1)
  • Программы (2)
  • Фриланс (3)

Сервисы


Найти среднюю оценку

Прибавить или вычесть процент

Калькулятор процентов

Калькулятор соотношения сторон пропорции ширины и высоты

Калькулятор стоимости кафеля (плитки)

Калькулятор стоимости длины

Калькулятор цен по весу

Калькулятор сравнения (разницы) цен

Калькулятор стоимости товара

Тетрис на Двоих

Проверка домена (whois)




Последние публикации


24. окт.2021 Битрикс Работа с сокетами Ошибка! Не работает
В проверке сайте можно наблюдать такую ошибку
Работа …

17.июл.2021 Как передать Roistat в заказ 1С-Битрикс
Передать ID Roistat можно в сам заказ в Битриксе после его о…

21.июн.2021 Сбой на файле, ошибка распаковки пакета
При очередном обновлении 1С-Битрикс выскочила ошибка [UUGZA0…

03.июн.2020 Не выводиться заглушка в композитном кеше
Столкнулся с тем, что при указании заглушки в динамической о…

01.апр.2020 Установка SSL сертификата LetsEncrypt на BitrixVM
Установка SSL сертификата LetsEncrypt на виртуальную машину …

07.мар.2020 Битрикс настройка SSL, ошибка работы с сокетами
Заходим в меню битрикса выбираем 8. Manage pool web servers …

14.ноя.2019 Не выгружаются заказы в 1С
Не выгружаться заказы в 1С из сайта на битрисе могут по разн. ..

07.ноя.2019 Видео youtube на фон сайта
Как-то на сайт мне нужно было вывести видео на весь экран, к…

05.ноя.2019 Свойство с большим списком (датой)
Если в инфоблоке необходимо использовать свойство типа списо…

05.ноя.2019 Основные настройки BitrixVM
Приведу основные пути и файлы конфигурации в виртуальной маш…



html — Как вертикально центрировать контейнер в Bootstrap?

Путь гибкого блока

Выравнивание по вертикали теперь очень просто благодаря использованию макета гибкого блока. В настоящее время этот метод поддерживается в широком диапазоне веб-браузеров, кроме Internet Explorer 8 и 9. Поэтому нам нужно использовать некоторые хаки/полифиллы или другие подходы для IE8/9.

Далее я покажу вам, как это сделать всего за 3 строки текста (независимо от старого синтаксиса flexbox) 9— Добавлен класс —> <дел> . ..

 .вертикальный центр {
  минимальная высота: 100%; /* Запасной вариант для браузеров НЕ поддерживает модуль vh */
  мин-высота: 100вх; /* Эти две строки считаются за одну :-) */
  дисплей: гибкий;
  выравнивание элементов: по центру;
}
 

Важные примечания (Учитывается в демо) :

  1. процент значения height или min-height свойств относятся к

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

  2. Префикс поставщика / старый синтаксис flexbox опущен в опубликованном фрагменте из-за краткости, но существует в онлайн-примере.

  3. В некоторых старых веб-браузерах, таких как Firefox 9 (в котором я тестировал) , гибкий контейнер — .vertical-center в данном случае — не будет занимать доступное пространство внутри родителя, поэтому мы нужно указать ширина свойство типа: ширина: 100% .

  4. Кроме того, в некоторых веб-браузерах, как упоминалось выше, гибкий элемент — в данном случае .container — может не отображаться по центру по горизонтали. Кажется, что примененное левое/правое поле из auto

    не оказывает никакого влияния на элемент гибкости.
    Поэтому нам нужно выровнять его по box-pack / justify-content .

Для получения дополнительной информации и/или вертикального выравнивания столбцов вы можете обратиться к теме ниже:

  • вертикальное выравнивание с Bootstrap 3

Традиционный способ для устаревших веб-браузеров

Это старый ответ, который я написал, когда отвечал на этот вопрос. Этот метод обсуждался здесь , и предполагается, что он будет работать и в Internet Explorer 8 и 9. Я объясню это вкратце:

Во встроенном потоке встроенный элемент уровня может быть выровнен вертикально по середине с помощью объявления vertical-align: middle . Спецификация от W3C:

middle
Совместите вертикальную среднюю точку блока с базовой линией родительского блока плюс половина x-высоты родительского блока.

В тех случаях, когда родительский элемент — .vertical-center в данном случае — имеет явную высоту , если бы у нас мог быть дочерний элемент, имеющий точно такую ​​же высоту родителя, мы бы в состоянии переместить базовую линию родителя в середину дочернего элемента полной высоты и неожиданно сделать желаемый дочерний элемент в потоке — .container — выровнен по центру по вертикали.

Собираем все вместе

При этом мы могли бы создать полноразмерный элемент внутри псевдоэлементов .vertical-center на ::before или ::after , а также изменить тип отображения по умолчанию этого и другого потомка, .container до inline-block .

Затем используйте

vertical-align: middle; , чтобы выровнять встроенные элементы по вертикали.

Вот:

 
<дел> ...
 .вертикальный центр {
  высота:100%;
  ширина:100%;
  выравнивание текста: по центру; /* выравниваем встроенные (-блочные) элементы по горизонтали */
  шрифт: 0/0 а; /* удалить пробел между встроенными (-блочными) элементами */
}
.vertical-center:before { /* создать полноразмерный встроенный блок псевдо=элемент */
  содержание: " ";
  отображение: встроенный блок;
  вертикальное выравнивание: посередине; /* вертикальное выравнивание встроенного элемента */
  высота: 100%;
}
.vertical-center > .container {
  максимальная ширина: 100%;
  отображение: встроенный блок;
  вертикальное выравнивание: посередине; /* вертикальное выравнивание встроенного элемента */
                           /* сброс свойства шрифта */
  шрифт: 16px/1 "Helvetica Neue", Helvetica, Arial, без засечек;
}
 

РАБОЧАЯ ДЕМО

.

Кроме того, чтобы предотвратить непредвиденные проблемы на очень маленьких экранах, вы можете сбросить высоту псевдоэлемента на auto или 0 или изменить его тип display на none , если необходимо, поэтому:

 @media (максимальная ширина: 768 пикселей) {
  .vertical-center: перед {
    высота: авто;
    /* Или же */
    дисплей: нет;
  }
}
 

ОБНОВЛЕННАЯ ДЕМО

И еще:

Если нижний колонтитул / заголовок разделы вокруг контейнера, лучше правильно расположить эти элементы ( относительный , абсолютный ? на ваше усмотрение.) и добавить более высокое значение z-index (для уверенности) в держать их всегда на вершине других.

Как центрировать по вертикали

Создание вертикально и горизонтально центрированного блока с фиксированной шириной и переменной высотой — лучшее решение для вертикального центрирования блока div для всех браузеров.

Он будет работать для всех новейших версий Firefox, Chrome, Opera и Safari.

Давайте попробуем сделать это вместе.

  • Установите три тега HTML
    и дайте им имена классов «внешний», «средний» и «внутренний».
 

  <голова>
    Название документа
  
  <тело>
    <дел>
      <дел>
        <дел>
          

Как вертикально центрировать HTML-тег

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut Labore et dolore magna aliqua.