#html #twitter-bootstrap #css #vertical-alignment
#HTML #twitter-bootstrap #css #выравнивание по вертикали
Вопрос:
Я пытаюсь выровнять кнопку внутри навигатора, но я не могу понять, как это сделать. Я разместил логотип высотой 50 пикселей и выровнял другие элементы навигации по вертикали с помощью свойства line-height, равного 50 пикселям. Прямо сейчас это выглядит так:
Когда я также добавляю высоту строки к кнопке, граница растягивается.
Вот мой HTML:
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">
<img alt="Dolm IT" src="img/logo.svg" height="50px">
</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li><a href="#">services</a></li>
<li><a href="#">showcase</a></li>
<li><a href="#">our team</a></li>
<button type="button" class="btn btn-default navbar-btn">get in touch</button>
</ul>
</div>
<!-- /.navbar-collapse -->
</div>
<!-- /.container-fluid -->
</nav>
И вот мой CSS:
/*nav*/
.navbar {
background-color: transparent;
border: 0;
}
.navbar-default .navbar-nav > li > a {
color: #01787e;
font-family: 'Akrobat-ExtraBold';
font-size: 1rem;
text-transform: uppercase;
letter-spacing: 2px;
margin-right: 50px;
}
.navbar-nav li a {
line-height: 50px;
}
/*buttons*/
.btn-default {
color: #01787e;
font-family: 'Akrobat-ExtraBold';
font-size: 1rem;
text-transform: uppercase;
letter-spacing: 2px;
}
.btn {
border: 2px solid #01787e;
border-radius: 5px;
padding: 7px 30px;
}
}
Вы можете увидеть проблему здесь.Спасибо за вашу помощь.
Комментарии:
1. Технически только
<li>
s должны быть прямыми дочерними элементами<ul>
s — вы пробовали поместить кнопку внутри<li>
и, возможно, поместить объявление высоты строки на.navbar-nav li
вместо.navbar-nav li a
?2. скрипта или фрагмент кода были бы чрезвычайно полезны.
3. Да, я пробовал это в какой-то момент, но это не работает. Элементы навигации поднимаются вверх, и они больше не выровнены с логотипом. И поскольку кнопка имеет свои отступы, остальная часть навигации все равно не выровнена с ней. @джек
Ответ №1:
Дайте вашему button.navbar-btn
классу оценку margin-top
25px
, и все готово.
button.navbar-btn{
margin-top:25px
}
Проверьте скрипту: https://jsfiddle.net/4ku2jhm4/1 /
Комментарии:
1. Здесь работает, но должно быть 20 пикселей;
2. Это зависит от требований пользователя. Для некоторых 25 пикселей будет работать, а для других 20 пикселей. Решение должно работать, и это, в конце концов, имеет значение. @UltrasoundJelly
Ответ №2:
Попробуйте с этим. Я не тестировал это, но это было бы что-то вроде этого.
.nuevo{
width:auto;
text-align:center;
line-height:40px;
padding:5px;
background:green;
display:block;
}
<ul class="nav navbar-nav navbar-right">
<li><a href="#">services</a></li>
<li><a href="#">showcase</a></li>
<li><a href="#">our team</a></li>
<li><a class="nuevo">get in touch</a></li>
</ul>
Ответ №3:
Свойство top может быть решением, которое вам здесь нужно.
.top {
top: 50px;
}
.lineheight {
line-height: 50px;
}
ul {
list-style-type: none;
margin: 0;
overflow: hidden;
border: 1px solid;
}
li {
float: left;
padding: 0px 5px;
}
<button class="top">top</button>
<button class="lineheight">lineheight</button>
<br><br>
<ul class="lineheight">
<li><a href="#">services</a></li>
<li><a href="#">showcase</a></li>
<li><a href="#">our team</a></li>
<button type="button" class="top">get in touch</button>
</ul>