English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Bootstrap4 использует класс flex для управления макетом страницы.
Самое большое различие между Bootstrap 3 и Bootstrap 4 заключается в том, что Bootstrap 4 использует эластичные блоки для布局, а не浮动.
Эластичный блок - это новый режим布局 CSS3, который лучше подходит для адаптивного дизайна, если вы еще не знакомы с flex, можно прочитать наше CSS3 эластичный блок (Flex Box) Урок
Внимание: IE9 и более ранние версии не поддерживают эластичные блоки, поэтому если вам нужно обеспечить совместимость с IE8-9, используйте Bootstrap 3.
В следующем примере используется класс d-flex для создания контейнера эластичного блока и установки трех эластичных подэлементов:
<!DOCTYPE html> <html> <head> <title>Bootstrap 示例</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <div class="container mt-3"> <h2>Flex</h2> <p>Для создания контейнера эластичного блока и установки трех эластичных подэлементов можно использовать класс d-flex:</p> <div class="d-flex p-3 bg-secondary text-white"> <div class="p-2 bg-info">Элемент Flex 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> </div> </body> </html>Проверьте, ‹/›
Результат выполнения будет следующим:
Для создания контейнера эластичного блока, отображаемого на одной строке, можно использовать класс d-inline-flex:
<!DOCTYPE html> <html> <head> <title>Bootstrap 示例</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <div class="container mt-3"> <h2>Внутренний Flex</h2> <p>Для создания контейнера эластичного блока, отображаемого на одной строке, можно использовать класс d-inline-flex:</p> <div class="d-inline-flex p-3 bg-secondary text-white"> <div class="p-2 bg-info">Элемент Flex 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> </div> </body> </html>Проверьте, ‹/›
Результат выполнения будет следующим:
.flex-row может устанавливать горизонтальное отображение эластичных подэлементов, что является стандартным.
Использование класса .flex-row-reverse для установки правостороннего выравнивания отображения, то есть в противоположном направлении от .flex-row.
<!DOCTYPE html> <html> <head> <title>Bootstrap 示例</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <div class="container mt-3"> <h2>Горизонтальное направление</h2> <p>Использование класса .flex-row для установки горизонтального отображения эластичных подэлементов:</p> <div class="d-flex flex-row bg-secondary mb-3"> <div class="p-2 bg-info">Элемент Flex 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> <p>Класс .flex-row-reverse устанавливает правостороннее выравнивание:</p> <div class="d-flex flex-row-reverse bg-secondary"> <div class="p-2 bg-info">Элемент Flex 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> </div> </body> </html>Проверьте, ‹/›
Результат выполнения будет следующим:
.flex-column класс используется для установки вертикального отображения эластичных подэлементов, .flex-column-reverse используется для переворачивания подэлементов:
<!DOCTYPE html> <html> <head> <title>Bootstrap 示例</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <div class="container mt-3"> <h2>Вертикальное направление</h2> <p>Класс .flex-column используется для установки вертикального отображения эластичных подэлементов:</p> <div class="d-flex flex-column mb-3"> <div class="p-2 bg-info">Элемент Flex 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> <p>Класс .flex-column-reverse используется для установки вертикального отображения эластичных подэлементов:</p> <div class="d-flex flex-column-reverse"> <div class="p-2 bg-info">Элемент Flex 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> </div> </body> </html>Проверьте, ‹/›
Результат выполнения будет следующим:
.justify-content-* классы используются для изменения способа расположения эластичных подэлементов, * может принимать значения:start (по умолчанию), end, center, between или around:
<!DOCTYPE html> <html> <head> <title>Bootstrap 示例</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <div class="container mt-3"> <h2>Способ расположения содержимого</h2> <p>Классы .justify-content-* используются для изменения способа расположения эластичных подэлементов, * может принимать значения: start (по умолчанию), end, center, between или around:</p> <div class="d-flex justify-content-start bg-secondary mb-3"> <div class="p-2 bg-info">Элемент Flex 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> <div class="d-flex justify-content-end bg-secondary mb-3"> <div class="p-2 bg-info">Элемент Flex 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> <div class="d-flex justify-content-center bg-secondary mb-3"> <div class="p-2 bg-info">Элемент Flex 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> <div class="d-flex justify-content-between bg-secondary mb-3"> <div class="p-2 bg-info">Элемент Flex 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> <div class="d-flex justify-content-around bg-secondary mb-3"> <div class="p-2 bg-info">Элемент Flex 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> </div> </body> </html>Проверьте, ‹/›
Результат выполнения будет следующим:
.flex-fill класс принудительно устанавливает одинаковую ширину для всех эластичных подэлементов:
<!DOCTYPE html> <html> <head> <title>Bootstrap 示例</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <div class="container mt-3"> <h2>Одинаковая ширина</h2> <p>Класс .flex-fill принудительно устанавливает одинаковую ширину для всех эластичных подэлементов:</p> <div class="d-flex mb-3"> <div class="p-2 flex-fill bg-info">Элемент Flex 1</div> <div class="p-2 flex-fill bg-warning">Элемент Flex 2</div> <div class="p-2 flex-fill bg-primary">Элемент Flex 3</div> </div> <p>Пример без использования класса .flex-fill:</p> <div class="d-flex mb-3 bg-secondary"> <div class="p-2 bg-info">Элемент Flex 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> </div> </body> </html>Проверьте, ‹/›
Результат выполнения будет следующим:
Класс .flex-grow-1 используется для настройки подэлементов, использующих оставшееся пространство. В следующем примере первые два подэлемента установили только необходимые им пространства, последний элемент получает оставшееся пространство.:
<!DOCTYPE html> <html> <head> <title>Bootstrap 示例</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <div class="container mt-3"> <h2>Расширение</h2> <p>Класс .flex-grow-1 используется для настройки подэлементов, использующих оставшееся пространство:</p> <div class="d-flex mb-3"> <div class="p-2 bg-info">Элемент Flex 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 flex-grow-1 bg-primary">Элемент Flex 3</div> </div> <p>Пример без использования .flex-grow-1:</p> <div class="d-flex mb-3 bg-secondary"> <div class="p-2 bg-info">Элемент Flex 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> </div> </body> </html>Проверьте, ‹/›
Результат выполнения будет следующим:
Подсказка: Использование .flex-shrink-1 для настройки правил сжатия подэлементов.
Класс .order позволяет установить порядок эластичных подэлементов, от .order-1 до .order-12, где число ниже вес выше ( .order-1 находится перед .order-2):
<!DOCTYPE html> <html> <head> <title>Bootstrap 示例</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <div class="container mt-3"> <h2>Порядок</h2> <p>Класс .order позволяет установить порядок эластичных подэлементов, от .order-1 до .order-12, где число ниже вес выше:</p> <div class="d-flex mb-3"> <div class="p-2 order-3 bg-info">Элемент Flex 1</div> <div class="p-2 order-2 bg-warning">Элемент Flex 2</div> <div class="p-2 order-1 bg-primary">Элемент Flex 3</div> </div> </div> </body> </html>Проверьте, ‹/›
Результат выполнения будет следующим:
класс .mr-auto позволяет установить правый внешнюю отступ для подэлементов autoт.е. margin-right: auto!important; класс .ml-auto позволяет установить левый внешнюю отступ для подэлементов autoт.е. margin-left: auto!important;:
<!DOCTYPE html> <html> <head> <title>Bootstrap 示例</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <div class="container mt-3"> <h2>Отступы</h2> <p>Класс .mr-auto устанавливает правый внешний отступ дочернего элемента в auto, класс .ml-auto устанавливает левый внешний отступ дочернего элемента в auto,</p> <div class="d-flex mb-3 bg-secondary"> <div class="p-2 mr-auto bg-info">Flex item 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> <div class="d-flex mb-3 bg-secondary"> <div class="p-2 bg-info">Flex item 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 ml-auto bg-primary">Flex item 3</div> </div> </div> </body> </html>Проверьте, ‹/›
Результат выполнения будет следующим:
Эластичный контейнер может содержать дочерние элементы с использованием следующих трех классов: .flex-nowrap (по умолчанию), .flex-wrap или .flex-wrap-reverse. Установите флекс-контейнер в виде одной строки или нескольких строк.
<!DOCTYPE html> <html> <head> <title>Bootstrap 示例</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <div class="container mt-3"> <h2>Обертка</h2> <p>Эластичный контейнер, содержащий эластичные дочерние элементы, может использовать следующие три класса: .flex-nowrap (по умолчанию), .flex-wrap или .flex-wrap-reverse:</p> <p><code>.flex-wrap:</code></p> <div class="d-flex flex-wrap bg-light"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> <div class="p-2 border">Элемент флекс 4</div> <div class="p-2 border">Элемент флекс 5</div> <div class="p-2 border">Элемент флекс 6</div> <div class="p-2 border">Элемент флекс 7</div> <div class="p-2 border">Элемент флекс 8</div> <div class="p-2 border">Элемент флекс 9</div> <div class="p-2 border">Элемент флекс 10</div> <div class="p-2 border">Элемент флекс 11</div> <div class="p-2 border">Элемент флекс 12</div> <div class="p-2 border">Элемент флекс 13</div> <div class="p-2 border">Элемент флекс 14</div> <div class="p-2 border">Элемент флекс 15</div> <div class="p-2 border">Элемент флекс 16</div> <div class="p-2 border">Элемент флекс 17</div> <div class="p-2 border">Элемент флекс 18</div> <div class="p-2 border">Элемент флекс 19</div> <div class="p-2 border">Элемент флекс 20</div> <div class="p-2 border">Flex item 21</div> <div class="p-2 border">Flex item 22</div> <div class="p-2 border">Flex item 23</div> <div class="p-2 border">Flex item 24</div> <div class="p-2 border">Flex item 25</div> </div> <br> <p><code>.flex-wrap-reverse:</code></p> <div class="d-flex flex-wrap-reverse bg-light"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> <div class="p-2 border">Элемент флекс 4</div> <div class="p-2 border">Элемент флекс 5</div> <div class="p-2 border">Элемент флекс 6</div> <div class="p-2 border">Элемент флекс 7</div> <div class="p-2 border">Элемент флекс 8</div> <div class="p-2 border">Элемент флекс 9</div> <div class="p-2 border">Элемент флекс 10</div> <div class="p-2 border">Элемент флекс 11</div> <div class="p-2 border">Элемент флекс 12</div> <div class="p-2 border">Элемент флекс 13</div> <div class="p-2 border">Элемент флекс 14</div> <div class="p-2 border">Элемент флекс 15</div> <div class="p-2 border">Элемент флекс 16</div> <div class="p-2 border">Элемент флекс 17</div> <div class="p-2 border">Элемент флекс 18</div> <div class="p-2 border">Элемент флекс 19</div> <div class="p-2 border">Элемент флекс 20</div> <div class="p-2 border">Flex item 21</div> <div class="p-2 border">Flex item 22</div> <div class="p-2 border">Flex item 23</div> <div class="p-2 border">Flex item 24</div> <div class="p-2 border">Flex item 25</div> </div> <br> <p><code>.flex-nowrap:</code></p> <div class="d-flex flex-nowrap bg-light"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> <div class="p-2 border">Элемент флекс 4</div> <div class="p-2 border">Элемент флекс 5</div> <div class="p-2 border">Элемент флекс 6</div> <div class="p-2 border">Элемент флекс 7</div> <div class="p-2 border">Элемент флекс 8</div> <div class="p-2 border">Элемент флекс 9</div> <div class="p-2 border">Элемент флекс 10</div> <div class="p-2 border">Элемент флекс 11</div> <div class="p-2 border">Элемент флекс 12</div> <div class="p-2 border">Элемент флекс 13</div> <div class="p-2 border">Элемент флекс 14</div> <div class="p-2 border">Элемент флекс 15</div> <div class="p-2 border">Элемент флекс 16</div> <div class="p-2 border">Элемент флекс 17</div> <div class="p-2 border">Элемент флекс 18</div> <div class="p-2 border">Элемент флекс 19</div> <div class="p-2 border">Элемент флекс 20</div> <div class="p-2 border">Flex item 21</div> <div class="p-2 border">Flex item 22</div> <div class="p-2 border">Flex item 23</div> <div class="p-2 border">Flex item 24</div> <div class="p-2 border">Flex item 25</div> <div class="p-2 border">Flex item 26</div> <div class="p-2 border">Flex item 27</div> <div class="p-2 border">Flex item 28</div> <div class="p-2 border">Элемент флекс 29</div> <div class="p-2 border">Элемент флекс 30</div> <div class="p-2 border">Элемент флекс 31</div> <div class="p-2 border">Элемент флекс 32</div> <div class="p-2 border">Элемент флекс 33</div> <div class="p-2 border">Элемент флекс 34</div> <div class="p-2 border">Элемент флекс 35</div> </div> <br> </div> </body> </html>Проверьте, ‹/›
Результат выполнения будет следующим:
Мы можем использовать .align-content-* для управления способом堆ления подэлементов по вертикали, значения включают: .align-content-start (по умолчанию), .align-content-end, .align-content-center, .align-content-between, .align-content-around и .align-content-stretch.
Эти классы не работают в эластичных подэлементах, имеющих только одну строку.
<!DOCTYPE html> <html> <head> <title>Bootstrap 示例</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <div class="container mt-3"> <h2>Выравнивание содержимого</h2> <p>Мы можем использовать .align-content-* для управления выравниванием подэлементов по вертикали.</p> <p><strong>Внимание:</strong> Этот пример неэффективен на небольших устройствах. Эти классы не работают в эластичных подэлементах, имеющих только одну строку.</p> <p>.align-content-start (по умолчанию):</p> <div class="d-flex flex-wrap align-content-start bg-light" style="height:300px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> <div class="p-2 border">Элемент флекс 4</div> <div class="p-2 border">Элемент флекс 5</div> <div class="p-2 border">Элемент флекс 6</div> <div class="p-2 border">Элемент флекс 7</div> <div class="p-2 border">Элемент флекс 8</div> <div class="p-2 border">Элемент флекс 9</div> <div class="p-2 border">Элемент флекс 10</div> <div class="p-2 border">Элемент флекс 11</div> <div class="p-2 border">Элемент флекс 12</div> <div class="p-2 border">Элемент флекс 13</div> <div class="p-2 border">Элемент флекс 14</div> <div class="p-2 border">Элемент флекс 15</div> <div class="p-2 border">Элемент флекс 16</div> <div class="p-2 border">Элемент флекс 17</div> <div class="p-2 border">Элемент флекс 18</div> <div class="p-2 border">Элемент флекс 19</div> <div class="p-2 border">Элемент флекс 20</div> <div class="p-2 border">Flex item 21</div> <div class="p-2 border">Flex item 22</div> <div class="p-2 border">Flex item 23</div> <div class="p-2 border">Flex item 24</div> <div class="p-2 border">Flex item 25</div> </div> <br> <p>.align-content-end:</p> <div class="d-flex flex-wrap align-content-end bg-light" style="height:300px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> <div class="p-2 border">Элемент флекс 4</div> <div class="p-2 border">Элемент флекс 5</div> <div class="p-2 border">Элемент флекс 6</div> <div class="p-2 border">Элемент флекс 7</div> <div class="p-2 border">Элемент флекс 8</div> <div class="p-2 border">Элемент флекс 9</div> <div class="p-2 border">Элемент флекс 10</div> <div class="p-2 border">Элемент флекс 11</div> <div class="p-2 border">Элемент флекс 12</div> <div class="p-2 border">Элемент флекс 13</div> <div class="p-2 border">Элемент флекс 14</div> <div class="p-2 border">Элемент флекс 15</div> <div class="p-2 border">Элемент флекс 16</div> <div class="p-2 border">Элемент флекс 17</div> <div class="p-2 border">Элемент флекс 18</div> <div class="p-2 border">Элемент флекс 19</div> <div class="p-2 border">Элемент флекс 20</div> <div class="p-2 border">Flex item 21</div> <div class="p-2 border">Flex item 22</div> <div class="p-2 border">Flex item 23</div> <div class="p-2 border">Flex item 24</div> <div class="p-2 border">Flex item 25</div> </div> <br> <p>.align-content-center:</p> <div class="d-flex flex-wrap align-content-center bg-light" style="height:300px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> <div class="p-2 border">Элемент флекс 4</div> <div class="p-2 border">Элемент флекс 5</div> <div class="p-2 border">Элемент флекс 6</div> <div class="p-2 border">Элемент флекс 7</div> <div class="p-2 border">Элемент флекс 8</div> <div class="p-2 border">Элемент флекс 9</div> <div class="p-2 border">Элемент флекс 10</div> <div class="p-2 border">Элемент флекс 11</div> <div class="p-2 border">Элемент флекс 12</div> <div class="p-2 border">Элемент флекс 13</div> <div class="p-2 border">Элемент флекс 14</div> <div class="p-2 border">Элемент флекс 15</div> <div class="p-2 border">Элемент флекс 16</div> <div class="p-2 border">Элемент флекс 17</div> <div class="p-2 border">Элемент флекс 18</div> <div class="p-2 border">Элемент флекс 19</div> <div class="p-2 border">Элемент флекс 20</div> <div class="p-2 border">Flex item 21</div> <div class="p-2 border">Flex item 22</div> <div class="p-2 border">Flex item 23</div> <div class="p-2 border">Flex item 24</div> <div class="p-2 border">Flex item 25</div> </div> <br> <p>.align-content-around:</p> <div class="d-flex flex-wrap align-content-around bg-light" style="height:300px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> <div class="p-2 border">Элемент флекс 4</div> <div class="p-2 border">Элемент флекс 5</div> <div class="p-2 border">Элемент флекс 6</div> <div class="p-2 border">Элемент флекс 7</div> <div class="p-2 border">Элемент флекс 8</div> <div class="p-2 border">Элемент флекс 9</div> <div class="p-2 border">Элемент флекс 10</div> <div class="p-2 border">Элемент флекс 11</div> <div class="p-2 border">Элемент флекс 12</div> <div class="p-2 border">Элемент флекс 13</div> <div class="p-2 border">Элемент флекс 14</div> <div class="p-2 border">Элемент флекс 15</div> <div class="p-2 border">Элемент флекс 16</div> <div class="p-2 border">Элемент флекс 17</div> <div class="p-2 border">Элемент флекс 18</div> <div class="p-2 border">Элемент флекс 19</div> <div class="p-2 border">Элемент флекс 20</div> <div class="p-2 border">Flex item 21</div> <div class="p-2 border">Flex item 22</div> <div class="p-2 border">Flex item 23</div> <div class="p-2 border">Flex item 24</div> <div class="p-2 border">Flex item 25</div> </div> <br> <p>.align-content-stretch:</p> <div class="d-flex flex-wrap align-content-stretch bg-light" style="height:300px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> <div class="p-2 border">Элемент флекс 4</div> <div class="p-2 border">Элемент флекс 5</div> <div class="p-2 border">Элемент флекс 6</div> <div class="p-2 border">Элемент флекс 7</div> <div class="p-2 border">Элемент флекс 8</div> <div class="p-2 border">Элемент флекс 9</div> <div class="p-2 border">Элемент флекс 10</div> <div class="p-2 border">Элемент флекс 11</div> <div class="p-2 border">Элемент флекс 12</div> <div class="p-2 border">Элемент флекс 13</div> <div class="p-2 border">Элемент флекс 14</div> <div class="p-2 border">Элемент флекс 15</div> <div class="p-2 border">Элемент флекс 16</div> <div class="p-2 border">Элемент флекс 17</div> <div class="p-2 border">Элемент флекс 18</div> <div class="p-2 border">Элемент флекс 19</div> <div class="p-2 border">Элемент флекс 20</div> <div class="p-2 border">Flex item 21</div> <div class="p-2 border">Flex item 22</div> <div class="p-2 border">Flex item 23</div> <div class="p-2 border">Flex item 24</div> <div class="p-2 border">Flex item 25</div> </div> <br> </div> </body> </html>Проверьте, ‹/›
Результат выполнения будет следующим:
Чтобы настроить выравнивание единичного строкового подэлемента, можно использовать класс .align-items-* для управления, включающий значения:.align-items-start, .align-items-end, .align-items-center, .align-items-baseline и .align-items-stretch (по умолчанию).
<!DOCTYPE html> <html> <head> <title>Bootstrap 示例</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <div class="container mt-3"> <h2>Выравнивание подэлементов</h2> <p>Чтобы настроить выравнивание единичного строкового подэлемента, можно использовать класс .align-content-* для управления.</p> <p>.align-items-start:</p> <div class="d-flex align-items-start bg-light" style="height:150px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> </div> <br> <p>.align-items-end:</p> <div class="d-flex align-items-end bg-light" style="height:150px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> </div> <br> <p>.align-items-center:</p> <div class="d-flex align-items-center bg-light" style="height:150px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> </div> <br> <p>.align-items-baseline:</p> <div class="d-flex align-items-baseline bg-light" style="height:150px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> </div> <br> <p>.align-items-stretch (по умолчанию):</p> <div class="d-flex align-items-stretch bg-light" style="height:150px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> </div> <br> </div> </body> </html>Проверьте, ‹/›
Результат выполнения будет следующим:
如果要设置指定子元素对齐,可以使用 .align-self-* 类来控制,包含的值有:.align-self-start, .align-self-end, .align-self-center, .align-self-baseline, 和 .align-self-stretch (默认)。
<!DOCTYPE html> <html> <head> <title>Bootstrap 示例</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <div class="container mt-3"> <h2>Align Self</h2> <p>如果要设置指定子元素对齐,可以使用 .align-self-* 类来控制。</p> <p>.align-self-start:</p> <div class="d-flex bg-light" style="height:150px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border align-self-start">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> </div> <br> <p>.align-self-end:</p> <div class="d-flex bg-light" style="height:150px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border align-self-end">Flex item 2</div> <div class="p-2 border">Элемент flex 3</div> </div> <br> <p>.align-self-center:</p> <div class="d-flex bg-light" style="height:150px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border align-self-center">Элемент flex 2</div> <div class="p-2 border">Элемент flex 3</div> </div> <br> <p>.align-self-baseline:</p> <div class="d-flex bg-light" style="height:150px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border align-self-baseline">Элемент flex 2</div> <div class="p-2 border">Элемент flex 3</div> </div> <br> <p>.align-self-stretch (по умолчанию):</p> <div class="d-flex bg-light" style="height:150px"> <div class="p-2 border">Элемент flex 1</div> <div class="p-2 border align-self-stretch">Элемент flex 2</div> <div class="p-2 border">Элемент flex 3</div> </div> <br> </div> </body> </html>Проверьте, ‹/›
Результат выполнения будет следующим:
Мы можем устанавливать класс flex в зависимости от различных устройств, чтобы реализовать адаптивную разметку страницы, значения * в таблице могут быть: sm, md, lg или xl, что соответствует малым, средним, большим и超大ным устройствам.
Класс | Пример | Реализация |
---|---|---|
Эластичный контейнер | ||
.d-*-flex | В зависимости от разных экранных устройств создавать контейнер эластичного блока | Попробуйте |
Направление | ||
.flex-*-row | В зависимости от разных экранных устройств отображать эластичные подэлементы в горизонтальном направлении | Попробуйте |
.flex-*-column | В зависимости от разных экранных устройств отображать эластичные подэлементы в вертикальном направлении | Попробуйте |
Выравнивание содержимого | ||
.justify-content-*-start | В зависимости от разных экранных устройств отображать эластичные подэлементы в начале (слева) | Попробуйте |
.justify-content-*-center | В зависимости от разных экранных устройств центрировать подэлементы в контейнере flex | Попробуйте |
.justify-content-*-around | В зависимости от разных экранных устройств использовать "around" для отображения эластичных подэлементов | Попробуйте |
Расширение | ||
.flex-*-grow-0 | Разные экранные устройства не устанавливают расширение | |
.flex-*-grow-1 | Разные экранные устройства устанавливают расширение | |
Сжатие | ||
.flex-*-shrink-0 | Разные экранные устройства не устанавливают сжатие | |
.flex-*-shrink-1 | Разные экранные устройства устанавливают сжатие | |
Обертка | ||
.flex-*-nowrap | Не устанавливать 包装 элементов в зависимости от типа экрана устройства | Попробуйте |
.flex-*-wrap-reverse | Обратное включение элементов в зависимости от типа экрана устройства | Попробуйте |
.align-content-*-end | В зависимости от типа экрана устройства,堆积 элементов в конце | Попробуйте |
.align-content-*-around | В зависимости от типа экрана устройства, использовать "around" для стека элементов | Попробуйте |
Выравнивание элементов | ||
.align-items-*-start | В зависимости от типа экрана устройства, отображать элементы в начале на одном ряду. | Попробуйте |
.align-items-*-center | В зависимости от типа экрана устройства, отображать элементы по центру на одном ряду. | Попробуйте |
.align-items-*-stretch | В зависимости от типа экрана устройства, расширять высоту элемента и отображать его на одном ряду. | Попробуйте |
.align-self-*-end | В зависимости от типа экрана устройства, отображать отдельный подэлемент в конце | Попробуйте |
.align-self-*-baseline | В зависимости от типа экрана устройства, отображать отдельный подэлемент на базовой линии | Попробуйте |