Twitter Bootstrap - центрирование логотипа бренда в navbar

Я попытался центрировать .brand логотип с:

.brand { margin-left: auto; margin-right: auto; }

это мой топ макет навигационной панели:

http://jsfiddle.net/J4zkJ/3/

но, похоже, это не работает.

Я искал в стеке, прежде чем опубликовать этот ответ, и код, который я использовал выше, взят из ответа на вопрос.

Любая идея, как центрировать.brand?

NB: я не могу использовать position:absolute and fixedи я хотел бы сделать это ответно (responsive)

Также я попробовал это:

.brand { 
  margin:0 auto !important;
  padding:0 auto !important;
  position:absolute !important;
  right:0px;
  left:0px;
   z-index:9999999999 !important;

}

3 ответа

Решение
.navbar .brand {
  margin-left: auto;
  margin-right: auto;
  width: 60px;
  float: none;
}

Я дал ему произвольную ширину, установил на то, что вы хотите.

jsFiddle

с помощью начальной загрузки 3

Я добавил три класса в свой файл global.less, чтобы увеличить классы начальной загрузки navbar.less.

Этот подход работает со всеми адаптивными размерами правил @media, но вам нужно будет отрегулировать размер шрифта и точки свертывания меню в зависимости от ширины пунктов вашего меню (этот подход позиционирует бренд navbar абсолютно - он "плавает" над другие пункты меню).

стиль:

.navbar-brand-centered {
    position: absolute;
    top: 0;
    left: 50%;
    height: 50px;
    width: 200px;  /* bootstrap has max-width: 200px rule */
    margin-left: -100px;
    margin-top: 8px;
    text-align: center;
  }

  .navbar-brand-centered {
    color: @navbar-inverse-brand-color;
    &:hover,
    &:focus {
      color: @navbar-inverse-brand-hover-color;
      background-color: @navbar-inverse-brand-hover-bg;
    }
  }

  .navbar-brand-centered {
    display: block;
    max-width: 200px;
    margin-left: auto;
    margin-right: auto;
    padding: @navbar-padding-vertical @navbar-padding-horizontal;
    font-size: @font-size-large;
    font-weight: 500;
    line-height: @line-height-computed;
    color: @navbar-brand-color;
    text-align: center;
    &:hover,
    &:focus {
      color: @navbar-brand-hover-color;
      text-decoration: none;
      background-color: @navbar-brand-hover-bg;
    }
  }

использование:

<div class="navbar navbar-fixed-top">
    <!-- .navbar-toggle is used as the toggle for collapsed navbar content -->
    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
    </button>

    <!-- Be sure to leave the brand out here if you want it shown -->
    <a class="navbar-brand-centered" href="/"><span style="font-size: 2em">mess<span style="color: red;">2</span>dress</span></a>

    <!-- Place everything within .navbar-collapse to hide it until above 768px -->
    <div class="nav-collapse collapse navbar-responsive-collapse">
        <!-- YOUR MENU ITEMS HERE -->

Это сработало для меня, но я уверен, что есть лучший способ интеграции с подходом, основанным на float, который реализует начальная загрузка. Открыта для обратной связи.

Я просто использовал их в своем style.css, и это сработало для меня:

    / * Заголовок навигационной панели */
    .navbar-header {
        выравнивание текста: по центру;
        поле: 10px;
        плавать: нет! важно;
    }

    / * Название сайта */
    .navbar-brand {
        плавать: нет! важно;
    }

Другие вопросы по тегам