Подтвердить что ты не робот

Как центрировать элементы навигатора по вертикали (Twitter Bootstrap)?

Это мой CSS/LESS код CSS:

//make navbar taller
@navbarHeight: 60px;

//make navbar link text 18px
.navbar-inner {
    font-size: 18px;
}

//make navbar brand text 36px
.navbar .brand {
    font-size: 36px;
}

Что производит это:

enter image description here

FYI Я использую демо-код Twitter Bootstrap, я не изменил html (кроме изменения названия бренда).

Как вы можете видеть, название бренда центрируется по вертикали внутри навигационной панели, как и должно быть, но навигационные ссылки не являются (они немного выше к вершине). Проблема стала очевидной только после того, как я изменил высоту навигационной панели. Как я могу заставить их центрировать по вертикали (например, этот сайт)?

Если это поможет, подсветка элементов в Chrome показывает следующее:

enter image description here

4b9b3361

Ответ 1

Класс .brand использует другой line-height, чем базовый текст, который используется во всех Bootstrap, а также несколько других ключевых различий.

Соответствующие части исходного бутстрапа navbar LESS -

Для .brand:

.brand {
  // Vertically center the text given $navbarHeight
  @elementHeight: 20px;
  padding: ((@navbarHeight - @elementHeight) / 2 - 2) 20px ((@navbarHeight - @elementHeight) / 2 + 2);
  font-size: 20px;
  line-height: 1;
}

Для ссылок на навигационной панели:

.navbar .nav > li > a {
  @elementHeight: 20px;
  padding: ((@navbarHeight - @elementHeight) / 2 - 1) 10px ((@navbarHeight - @elementHeight) / 2 + 1);
  line-height: 19px;
}

Вам, вероятно, придется поиграть со значениями @elementHeight, line-height и, возможно, padding для селектора .navbar .nav > li > a, чтобы отразить большее значение 60px @navbarHeight (эти значения по умолчанию предназначены для 40px @navbarHeight). Возможно, попробуйте запустить 40px @elementHeight и/или высоту строки 29px.

Ответ 2

Вы можете попробовать следующее:

display: table-cell;

Ответ 3

Если приведенный выше ответ не помогает, и вы не касаетесь html, единственное, что я могу придумать, это css. Возможно, вы захотите посмотреть на css, который использовал пример начальной загрузки и изменил размеры .navbar-inner и .navbar .brand соответственно.

Ответ 4

У меня была аналогичная проблема с Bootstrap 3, но с брендом eliment. В конце я использовал следующий css:

.navbar-brand {
  font-size: 3em;
  line-height: 1em;
}

Моя панель навигации увеличилась в размере из-за изображения 50 пикселей, с верхним и нижним полями 10 пикселей. Не уверен, что это поможет.