#css #bootstrap-4 #flexbox
#css #bootstrap-4 #flexbox
Вопрос:
Я использую flexbox с align-items-stretch, поскольку мне нужно, чтобы границы достигали как сверху, так и снизу. Не разрешая использование полей и отступов, как я могу добиться выравнивания текста по вертикали внутри гибкого трубопровода, не сталкиваясь с каким-либо конфликтом свойств?
Я попытался использовать align-items-stretch и внутри ul li
добавленного align-middle
класса, но, похоже, он ничего не делает, видя, что свойство конфликтует.
<div class="navbar-collapse collapse align-items-stretch" id="navbarCollapse" style="">
<ul class="navbar-nav ml-auto">
<li class="nav-item active">Home</li>
<li class="nav-item">About Us</li>
<li class="nav-item ">Services</li>
</ul>
</div>
Этот текущий код позволяет растянуть мои границы, но текст внутри flexbox не может быть централизован.
Комментарии:
1. Вы можете добавить тень окна для отображения границы вокруг элементов навигации, например: .navbar-nav li { box-shadow: 0px 0px 1px 0px red; }
2. использование
li.nav-item { display: flex; align-items: center; }
Ответ №1:
Как насчет добавления line-height
со значением, равным высоте .nav-item
?
Пример:
.navbar-nav {
display: flex;
justify-content: center;
}
.nav-item {
border: 1px solid pink;
height: 3rem;
line-height: 3rem;
text-align: center;
}
ul {
list-style: none;
margin: 0;
padding: 0;
}
<div class="navbar-collapse collapse align-items-stretch" id="navbarCollapse" style="">
<ul class="navbar-nav ml-auto">
<li class="nav-item active">Home</li>
<li class="nav-item">About Us</li>
<li class="nav-item ">Services</li>
</ul>
</div>
И вот еще что:https://jsfiddle.net/jutvsw26 /
Для более подробного ответа не могли бы вы добавить некоторый CSS, который вы используете в настоящее время.