Вертикальный центр Twitter bootstrap flex не работает с помощью функции выравнивания по центру

#html #css #twitter-bootstrap #bootstrap-4 #flexbox

Вопрос:

Я использую twitter bootstrap 4.4.1 и flex для создания макета. Чего я хочу добиться, так это иметь навигационную панель вверху и некоторый контент в середине экрана.

Немного похоже на это: введите описание изображения здесь

Я использую следующий код (также jsfiddle здесь jsfiddle):

 <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/css/bootstrap.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/js/bootstrap.min.js"></script>

    <div class="container">
        <nav class="navbar navbar-light bg-light">
            <div class="col-md-12 d-flex align-items-start justify-content-end">
            <button class="btn btn-warning btn-large">Large</button>
            </div>
        </nav>

        <div class="row d-flex align-self-center">
            <div class="col-12 mx-auto">
                <div class="jumbotron text-center">
                    Some text
                </div>
            </div>
        </div>
    </div> 

Я много чего перепробовал, но мне просто не удается расположить текстовый блок по центру экрана.

Я новичок в системе компоновки/сетки/гибкого трубопровода, но это оказывается действительно сложным. Любая помощь будет очень признательна!

Ответ №1:

  1. Я добавил класс h-100, чтобы сделать contianer в полный рост. <div class="container h-100">
  2. Вам также нужно будет убедиться, что любой родитель(родители) также на 100% выше (или имеет определенную высоту)…

    html,тело { высота: 100%; }

  3. Используйте align-items-center вместо align-self-center <div class="row d-flex align-items-center h-100 m-auto">

Вы также можете увидеть изменения здесь, а также код JSFiddle

 html, body {
  height: 100%;
} 
 <link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet"/>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container-fluid h-100">
        <nav class="navbar navbar-light bg-light">
            <div class="col-md-12 d-flex align-items-start justify-content-end">
            <button class="btn btn-warning btn-large">Large</button>
            </div>
        </nav>

        <div class="row d-flex align-items-center h-100 m-auto">
            <div class="col-12 mx-auto">
                <div class="jumbotron text-center">
                    Some text
                </div>
            </div>
        </div>
    </div>