Логотип Twitter-Bootstrap-2 поверх навигационной панели

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

  <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 отображается под навигационной панелью.

Ответ 1

Вы также должны добавить класс "navbar-brand" в контейнер image 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>

Ответ 2

Замените класс бренда либо в файле 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>

Ответ 3

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


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

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

Затем используйте 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, вам также нужно исправить таблицы стилей.

Если вы сделаете это в МЕНЬШЕ:

.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

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

Обратите внимание, что я намеренно не использую class= "навигационную марку", так как это добавляет дополнение к изображению

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

Ответ 5

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

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

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