#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:
- Я добавил класс h-100, чтобы сделать contianer в полный рост.
<div class="container h-100">
- Вам также нужно будет убедиться, что любой родитель(родители) также на 100% выше (или имеет определенную высоту)…
html,тело { высота: 100%; }
- Используйте 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>