Изображение логотипа Twitter-Bootstrap-2 в верхней части панели навигации - PullRequest
67 голосов
/ 27 марта 2012

Может кто-нибудь подсказать, как я могу разместить логотип в верхней части панели навигации? Моя разметка:

  <body>
    <a href="index.html"> <img src="images/57x57x300.jpg"></a>
     <div class="navbar navbar-fixed-top">
       <div class="navbar-inner">
         <div class="container">

Он не работает, так как 57x57x300.jpg отображается под панелью навигации.

Ответы [ 5 ]

71 голосов
/ 27 марта 2012

Вы также должны добавить класс «navbar-brand» в свой контейнер a, также вы должны включить его в контейнер .navbar-inner, например:

 <div class="navbar navbar-fixed-top">
   <div class="navbar-inner">
     <div class="container">
        <a class="navbar-brand" href="index.html"> <img src="images/57x57x300.jpg"></a>
     </div>
   </div>
 </div>
55 голосов
/ 29 марта 2012

Перезаписать класс бренда либо в файле bootstrap.css, либо в новом файле CSS, как показано ниже -

.brand
{
  background: url(images/logo.png) no-repeat left center;
  height: 20px;
  width: 100px;
}

, и ваш HTML-файл должен выглядеть следующим образом -

<div class="container-fluid">
  <a class="brand" href="index.html"></a>
</div>
13 голосов
/ 11 сентября 2012

Вы должны удалить класс navbar-fixed-top, в противном случае панель навигации остается фиксированной в верхней части страницы, где вы хотите логотип.


Если вы хотите разместить логотип внутри панели навигации:

Высота Navbar (задается в переменной @navbarHeight LESS) по умолчанию 40px.Ваш логотип должен уместиться внутри, или вы должны сначала сделать навигационную панель выше.

Затем используйте brand class:

<div class="navbar navbar-fixed-top">
  <div class="navbar-inner">
    <div class="container">
      <a href="/" class="brand"><img alt="" src="/logo.gif" /></a>
    </div>
  </div>
</div>

Если ваш логотип выше 20px, вы должныисправить таблицы стилей, а также.

Если вы сделаете это в LESS:

.navbar .brand {
  @elementHeight: 32px;
  padding: ((@navbarHeight - @elementHeight) / 2 - 2) 20px ((@navbarHeight - @elementHeight) / 2 + 2);
}

@elementHeight должен быть установлен на высоту вашего изображения.

Расчет заполнения взят из Twitter Bootstrap LESS - https://github.com/twitter/bootstrap/blob/v2.0.4/less/navbar.less#L51-52

В качестве альтернативы вы можете самостоятельно рассчитать значения отступов и использовать чистый CSS.

Это работает для Twitter Bootstrap версий 2.0.x, должно работать и в 2.1, но вычисление отступов было немного изменено:https://github.com/twitter/bootstrap/blob/v2.1.0/less/navbar.less#L50

4 голосов
/ 24 сентября 2014

я использую этот код для navbar при начальной загрузке 3.2.0, изображение должно быть высотой не более 50 пикселей, иначе оно будет кровоточить по стандартной навигационной панели bs.

Обратите внимание, что я намеренно не использую class = 'navbar-brand', так как это вводит заполнение изображения

<div class="navbar navbar-default navbar-fixed-top" role="navigation">
    <div class="container">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
        <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="" href="/"><img src='img/anyWidthx50.png'/></a>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse navbar-ex1-collapse">
       <ul class="nav navbar-nav">
        <li class="active"><a href="#">Active Link</a></li>
        <li><a href="#">More Links</a></li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div>
</div>
3 голосов
/ 28 мая 2013

Если не увеличивать высоту навигационной панели ..

 .navbar .brand {
 position: fixed;    
 overflow: visible;
 padding-left: 0;    
 padding-top: 0;
 }

см. http://jsfiddle.net/petrfox/S84wP/

...