Панель навигации начальной загрузки — выровнять кнопку по вертикали

#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>