Bootstrap 3 выравнивание по вертикали: html5 — Bootstrap выравнивание по вертикали блоков

html5 — Bootstrap выравнивание по вертикали блоков

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

<div class = "container">
		<div>
			<div>1</div>
			<div>2</div> 
			<div>3</div> 
		</div>
	</div>
  • html5
  • bootstrap

Почему вы решили, что не работает? Если родительскому элементу колонок (.row) не задана определенная высота или колонки имеют одинаковую высоту, то эффект вы не увидите.

.row {
  height: 150px;
  border: 1px solid #060;
}

.col {
  border: 1px solid #999;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
<div>
  <div>
    <div>1</div>
    <div>2</div>
    <div>3</div>
  </div>
</div>
. row {
  border: 1px solid #060;
}

.col {
  border: 1px solid #999;
}

.col:nth-child(2) {
  height: 100px;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
<div>
  <div>
    <div>1</div>
    <div>2</div>
    <div>3</div>
  </div>
</div>

1

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

bootstrap — Как выровнять текст по вертикали и горизонтали на bootstrap4?

Задать вопрос

Вопрос задан

Изменён 3 года 11 месяцев назад

Просмотрен 3k раз

Есть блок conteiner в нем row, а в нем текст. Этот текст по заданию должен быть посередине блока. И должен быть всегда посередине при изменении экрана. Как мне сделать это?

<div>
  <div>
    <div><h2>Привет!</h2></div>
  </div>
</div>
  • bootstrap
  • bootstrap4

2

Учитесь пользоваться поиском на сайте Bootstrap. Пример можно посмотреть тут.

Вариант 1:

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<div>
    <div>
        <div>
            <p>Текст по центру</p>
        </div>
    </div>
</div>

Вариант 2. Выравнивание и по вертикали (подробнее тут):

.d-flex{
    height: 300px;
}
<link rel="stylesheet" href="https://stackpath. bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<div>
    <div>
        <div>
            <div>
                <p>Текст по центру</p>
            </div>
        </div>
    </div>
</div>

2

Используйте класс text-center Документация

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<div> 
    <div>
        <div>
            <h2>Привет!</h2>
        </div>
    </div>
</div>

1

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

html — вертикальное выравнивание с помощью Bootstrap 3

Гибкая компоновка блоков

С появлением CSS Flexible Box многие кошмары веб-дизайнеров 1 были решены. Один из самых хакерских — вертикальное выравнивание. Теперь это возможно даже в

неведомых высотах .

«Два десятилетия хакерских манипуляций подходят к концу. Может быть, не завтра, но скоро и на всю оставшуюся жизнь.»

— Легендарный CSS Эрик Мейер на W3Conf 2013

Flexible Box (или сокращенно Flexbox) — это новая система компоновки, специально разработанная для целей компоновки. В спецификации указано:

Макет

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

Как это может помочь в этом случае? Что ж, посмотрим.


Используя Twitter Bootstrap, у нас есть

. -- Дополнительный класс --> <дел> ... <дел> ...
 .вертикальное выравнивание {
    дисплей: гибкий;
    выравнивание элементов: по центру;
}
 

Вывод

Цветная область отображает отступы столбцов.

Уточнение по

align-items: center

8.3 Выравнивание поперек оси: свойство align-items

Элементы

Flex могут быть выровнены по поперечной оси текущей строки контейнера flex, аналогично justify-content , но в перпендикулярном направлении. align-items устанавливает выравнивание по умолчанию для всех элементов flex-контейнера, включая анонимные flex-элементы.

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


Big Alert

Важное примечание №1:

Twitter Bootstrap не указывает ширину столбцов в очень маленьких устройствах, если только вы не назначите столбцам один из классов . col-xs-# .

Поэтому в этой конкретной демонстрации я использовал классы .col-xs-* для правильного отображения столбцов в мобильном режиме, поскольку он явно указывает ширину столбца .

Но в качестве альтернативы вы можете отключить макет Flexbox, просто изменив display: flex; От до дисплей: блок; для определенных размеров экрана. Например:

 /* Очень маленькие устройства (767px и меньше) */
@media (максимальная ширина: 767 пикселей) {
    .row.vertical-align {
        дисплей: блок; /* Отключаем гибкую компоновку блоков */
    }
}
 

Или вы можете указать .vertical-align только

для определенных размеров экрана, например:

 /* Маленькие устройства (планшеты, 768px и выше) */
@media (минимальная ширина: 768 пикселей) {
    .row.vertical-align {
        дисплей: гибкий;
        выравнивание элементов: по центру;
    }
}
 

В таком случае я бы выбрал подход @KevinNelson.

Важное примечание №2: Префиксы производителей опущены для краткости. Синтаксис Flexbox был изменен за это время. Новый письменный синтаксис не будет работать в старых версиях веб-браузеров (но не таких старых, как Internet Explorer 9).! Flexbox поддерживается в Internet Explorer 10 и более поздних версиях).

Это означает, что вы также должны использовать свойства с префиксом поставщика, такие как display: -webkit-box и т. д. в производственном режиме.

Если вы нажмете «Переключить скомпилированное представление» в демо-версии, вы увидите префиксную версию объявлений CSS (благодаря Autoprefixer).


Как вы видите в предыдущей демонстрации, столбцы (гибкие элементы) больше не имеют такой высоты, как их контейнер (блок гибкого контейнера, т. е. .row элемент).

Это связано с использованием значения center для свойства align-items . Значение по умолчанию — , растяжение , чтобы элементы могли заполнить всю высоту родительского элемента. ="кол-"], .vertical-align > [класс*=" col-"] { дисплей: гибкий; выравнивание элементов: по центру; /* Выровняйте flex-элементы по вертикали */ выравнивание содержимого: по центру; /* Необязательно, для выравнивания внутренних flex-элементов по горизонтали внутри столбца */ }

Вывод

Цветная область отображает отступы столбцов.

И последнее, но не менее важное . Обратите внимание, что приведенные здесь демонстрации и фрагменты кода предназначены для того, чтобы дать вам другую идею, чтобы предоставить современный подход к достижению цели. Обратите внимание на раздел « Big Alert », если вы собираетесь использовать этот подход на реальных веб-сайтах или в приложениях.


Для дальнейшего чтения, включая поддержку браузера, эти ресурсы будут полезны:

  • Сеть разработчиков Mozilla — гибкие блоки
  • Руководство по Flexbox — хитрости CSS
  • HTML5Rocks — быстрый Flexbox
  • SmashingMagazine — центрирующие элементы с Flexbox
  • Филип Уолтон - Решено Flexbox
  • Могу ли я использовать: гибкий модуль компоновки коробок

1. Вертикальное выравнивание изображения внутри div с адаптивной высотой 2. Лучше использовать дополнительный класс, чтобы не изменять значение Twitter Bootstrap по умолчанию .строка .

Вертикальное выравнивание Bootstrap — примеры и руководство

Вертикальное выравнивание

Утилиты Flexbox для вертикального выравнивания.

Примечание: Для расширенного использования см. Документы Flexbox.


Как вертикально, так и горизонтально

Добавьте .d-flex к родительскому элементу, чтобы включить гибкий режим. Затем используйте (также на родительский элемент) .align-items-center для выравнивания содержимого по вертикали и .justify-content-center для выравнивания содержимого по горизонтали.

Показать код Изменить в песочнице

            
              <дел>
                
              

Только вертикально

Добавьте . d-flex к родительскому элементу, чтобы включить гибкий режим. Затем используйте (также на родительский элемент) .align-items-center для выравнивания содержимого по вертикали

Показать код Изменить в песочнице

            
              <дел>
                
              

Опции Flexbox

Используйте утилиты align-items в контейнерах flexbox, чтобы изменить выравнивание flex элементы на поперечной оси (ось Y для начала, ось X, если flex-direction: column ). Выберите из начало , конец , центр , базовая линия , или stretch (браузер по умолчанию).

Гибкий элемент

Гибкий элемент

Гибкий элемент

Гибкий элемент

Гибкий элемент

Гибкий элемент

Гибкий элемент

Гибкий элемент

Гибкий элемент

Гибкий элемент

Гибкий элемент

Гибкий элемент

Гибкий элемент

Гибкий элемент

Гибкий элемент

Показать код Изменить в песочнице

            
          <дел>. ..
          <дел>...
          <дел>...
          <дел>...
          <дел>...
        
        
     

Адаптивные варианты также существуют для align-items .

  • .align-items-start
  • .align-items-end
  • .align-items-center
  • .align-items-baseline
  • .align-items-stretch
  • .align-items-sm-start
  • .align-items-sm-end
  • .align-items-sm-center
  • .align-items-sm-baseline
  • .align-items-sm-stretch
  • .align-items-md-start
  • .align-items-md-end
  • .align-items-md-center
  • .align-items-md-baseline
  • .
Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *