2015-07-10 2 views
2

Я пытаюсь создать навигационную панель, которая является частью размера логотипа, и позволяет размещать под ним дополнительный контент. Как это:Bootstrap - Большой логотип рядом с NavBar

Example

jsFiddle ниже показывает, что есть сейчас. Черная линия показывает нижнюю часть навигационной панели, которая расширена до того же размера, что и изображение.

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

Here's a Demo in jsFiddle

Вот мой код:

<div class ="container-fluid"> 
<a href="#" class="pull-left"><img id="logo" class="img-responsive" src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQevVAv_ZVUfI8i5cMpRZGbIu71MGjPUqR70qR7F877JKyWJWdEXw"></a> 

<nav class="navbar navbar-default" role="navigation"> 
    <div class="navbar-header"> 
     <button type="button" class="navbar-toggle" data-toggle="collapse" 
     data-target="#example-navbar-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="navbar-brand" href="#"><img class="img-responsive" src="img/logo.jpg"></a> --> 
    </div> 
    <div class="collapse navbar-collapse" id="example-navbar-collapse"> 
    <ul class="nav navbar-nav navbar-right"> 
     <li><a href="#">Search</a></li> 
     <li><a href="#">Archives</a></li> 
     <li><a href="#">Education</a></li> 
     <li><a href="#">About</a></li> 
    </ul> 
    </div> 
</nav> 

Любые советы будут оценены.

+0

скрипку вы связанный с просто gen gen eric. Вот [скрипка] (https://jsfiddle.net/z0947k7p/) с вашим фактическим кодом. Я также преобразовал изображение, чтобы просто использовать imgur, чтобы он не двигался со временем, когда вы перешли, но вопрос остается здесь. – KyleMit

+0

Благодарим вас за это и форматирование справки. Теперь вопрос выглядит намного лучше. – Archetype90

ответ

4

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

Обязательно включите Bootstrap CSS, JS и jQuery или ваш мобильный навигационный переключатель не откроется. Рабочий пример

.navbar.navbar-default { 
 
    border-radius: 0px; 
 
    border-left: transparent; 
 
} 
 
#navbar-collapse { 
 
    border-bottom: 1px solid #266080; 
 
} 
 
.lower-nav { 
 
    color: #fff; 
 
    font-size: 20px; 
 
    padding: 23px 20px; 
 
    height: 78px; 
 
    color: #266080; 
 
    background-color: #fff; 
 
    border-bottom: 6px solid #266080; 
 
} 
 
#brand-logo { 
 
    background-size: cover; 
 
    position: absolute; 
 
} 
 
#brand-logo img { 
 
    width: 100%; 
 
    height: 130px; 
 
    min-width: 150px; 
 
} 
 
div.nopadding { 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 
.nav-buttons { 
 
    border-radius: 0px; 
 
} 
 
.navbar-brand { 
 
    display: none; 
 
} 
 
.wrapper { 
 
    height: auto; 
 
    background-color: #fff; 
 
    margin-top: 0px; 
 
    padding: 10px 20px; 
 
} 
 
.well { 
 
    background-color: transparent; 
 
    border: 3px solid #428bca; 
 
    border-radius: 0px; 
 
    text-align: center; 
 
    font-size: 25px; 
 
} 
 
@media (max-width: 768px) { 
 
    .lower-nav { 
 
    font-size: 20px; 
 
    padding: 25px 20px; 
 
    } 
 
    .navbar-brand { 
 
    display: block; 
 
    } 
 
} 
 
@media (max-width: 480px) { 
 
    .lower-nav { 
 
    font-size: 18px; 
 
    padding: 20px 10px; 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" /> 
 
<div class="container-fluid"> 
 
    <div class="row"> 
 
    <div class="col-md-2 col-sm-2 hidden-xs nopadding"> 
 
     <div id="brand-logo"> 
 
     <img src="http://placehold.it/350x350/266080/fff?text=Home" alt="Home" /> 
 
     </div> 
 
    </div> 
 
    <div class="col-md-10 col-sm-10 nopadding"> 
 
     <nav class="navbar navbar-default" role="navigation"> 
 
     <div class="navbar-header"> 
 
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-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="navbar-brand" href="#">Brand</a> 
 

 
     </div> 
 
     <div class="collapse navbar-collapse" id="navbar-collapse"> 
 
      <ul class="nav navbar-nav navbar-right"> 
 
      <li><a href="#">Search</a> 
 

 
      </li> 
 
      <li><a href="#">Archives</a> 
 

 
      </li> 
 
      <li><a href="#">Education</a> 
 

 
      </li> 
 
      <li><a href="#">About</a> 
 

 
      </li> 
 
      </ul> 
 
     </div> 
 
     <div class="lower-nav"><span class="title">Text here</span> 
 

 
      <div class="btn-group pull-right"> 
 
      <div class="btn btn-info nav-buttons">Hello</div> 
 
      <div class="btn btn-warning nav-buttons">Hello</div> 
 
      <div class="btn btn-danger nav-buttons">Hello</div> 
 
      <div class="btn btn-default nav-buttons">Hello</div> 
 
      </div> 
 
     </div> 
 
     </nav> 
 
    </div> 
 
    </div> 
 
</div> 
 
<div class="wrapper"> 
 
    <div class="well"> <a href="http://getbootstrap.com//">Bootstrap 3</a> 
 
    </div> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ultrices enim id tortor tincidunt, eget mollis mauris gravida. Mauris sem leo, feugiat ut felis blandit, imperdiet egestas orci. Proin lacinia at massa fermentum facilisis. Donec laoreet 
 
    facilisis nunc, sed posuere magna rhoncus sed. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent augue ipsum, rhoncus vel tempus sed, vehicula non purus. Nunc sit amet consectetur risus. Integer eget justo ut sapien consectetur 
 
    auctor id eu augue. Quisque ac elit congue, eleifend lectus a, tempor purus. In hac habitasse platea dictumst. Phasellus gravida massa arcu, sed sodales orci interdum vel. Curabitur ullamcorper leo mauris, ut interdum felis mollis id. Nunc porttitor 
 
    egestas fringilla. Suspendisse volutpat sem quis sagittis fermentum. Fusce in laoreet elit. Etiam aliquam varius tincidunt.</p> 
 
    <p>Nunc nisi justo, ultricies at lobortis et, fermentum at dolor. Nulla ultrices erat et erat egestas, in luctus justo pellentesque. In convallis purus ut pellentesque interdum. Curabitur in neque lectus. Nullam lobortis sodales elit, eu fringilla eros 
 
    aliquet vel. Aliquam ac ipsum vel nunc vestibulum luctus nec sit amet mauris. Ut viverra ornare risus eu condimentum. Fusce sollicitudin volutpat nisl id dignissim. Sed malesuada dui at magna imperdiet, non accumsan odio imperdiet. Etiam tristique 
 
    fermentum enim, vel dictum nulla fermentum ac. Etiam in bibendum nisi. Vestibulum neque lectus, vehicula eu sagittis ut, blandit sit amet mi.</p> 
 
    <p>Maecenas lacinia vestibulum magna. Integer mollis varius ullamcorper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nullam sit amet tortor turpis. Cras pharetra tellus elit, nec iaculis erat pellentesque 
 
    sit amet. Nullam varius felis vel velit fermentum, nec facilisis erat accumsan. Nullam facilisis orci quam, eget semper turpis dictum id. Aenean magna ante, lobortis id sollicitudin quis, dapibus nec nisi. Maecenas aliquet posuere lectus, a ultricies 
 
    arcu sodales sodales. Proin dignissim facilisis consectetur. Pellentesque suscipit quis dui eget malesuada. Quisque cursus neque a faucibus egestas. Phasellus sed nulla scelerisque diam adipiscing suscipit. Etiam sit amet enim ultricies risus consequat 
 
    vestibulum eu sit amet urna.</p> 
 
    <p>Vivamus hendrerit eget augue viverra auctor. Praesent mi leo, facilisis vel nisi vitae, sodales rhoncus augue. Maecenas purus nunc, commodo at massa eu, blandit aliquet enim. Proin sem neque, imperdiet non arcu eu, sagittis malesuada est. Fusce enim 
 
    neque, facilisis et mattis ut, vulputate sed justo. Vivamus elementum elit nunc, eget tempor erat adipiscing nec. Praesent vestibulum dapibus vehicula. Pellentesque viverra faucibus leo in ornare. Sed sodales faucibus tincidunt. Vivamus dignissim 
 
    tristique libero sit amet aliquet. Donec ut nunc dolor. Duis molestie tortor mi, id auctor nisi ullamcorper et. Proin eu ante cursus, varius felis id, porta orci.</p> 
 
    <p>Aliquam imperdiet scelerisque purus, nec sagittis mi auctor vitae. Maecenas sodales scelerisque massa, vitae iaculis neque tincidunt sed. Vivamus id imperdiet lectus. Fusce id tellus ut tellus volutpat hendrerit in at justo. Duis eu tempus nibh. Nunc 
 
    consectetur euismod sapien, eget placerat metus tempor sit amet. Maecenas at sem ac purus dictum viverra. Praesent eu neque in metus congue dictum eu in dolor. Mauris a elit sem. Quisque non velit malesuada ligula aliquet lacinia. Donec congue, leo 
 
    lacinia vulputate pulvinar, est justo venenatis nisi, sit amet condimentum massa sem sed urna. Duis eget pretium eros. Sed et rutrum leo, sit amet sollicitudin urna. Nullam dui augue, malesuada sed lectus sed, malesuada fringilla massa.</p> 
 
</div>

+0

Ничего себе, это УДИВИТЕЛЬНО. Именно то, что я ищу! Спасибо огромное! – Archetype90

+0

У меня есть еще один вопрос для вас - надеюсь, вы это увидите. Вот [обновленный jsfiddle] (https://jsfiddle.net/DTcHh/9871/), который почти полностью является вашим кодом. Когда экран становится достаточно маленьким, а навигационная панель рушится, изображение логотипа исчезает. Я бы очень хотел, чтобы рухнул navbar, под ним под ним и логотип с левой стороны. Большое вам спасибо за ваш оригинальный ответ, код великолепный. – Archetype90

0

Вы можете добавить строку и некоторые столбцы, как я сделал ниже. Размещение изображения в первом столбце слева, а затем на панели навигации во втором столбце.

<div class="container-fluid"> 
<div class="row"> 
    <div class="col-md-2"> 
     <a href="#" class="pull-left"> 
      <img id="logo" class="img-responsive" src="http://i.imgur.com/yhGyJ8P.png" /> 
     </a> 
    </div> 

    <div class="col-md-10"> 
     <nav class="navbar navbar-default" role="navigation"> 
      <div class="navbar-header"> 
       <button type="button" class="navbar-toggle" 
         data-toggle="collapse" data-target="#example-navbar-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="navbar-brand" href="#"> 
       <img class="img-responsive" src="img/logo.jpg"> 
     </a> --> 
      </div> 
      <div class="collapse navbar-collapse" id="example-navbar-collapse"> 
       <ul class="nav navbar-nav navbar-right"> 
        <li><a href="#">Search</a></li> 
        <li><a href="#">Archives</a></li> 
        <li><a href="#">Education</a></li> 
        <li><a href="#">About</a></li> 
       </ul> 
      </div> 
     </nav> 
    </div> 


</div> 

+0

Мне это очень нравится, он выглядит великолепно и именно то, о чем я просил. Одна проблема, которую я вижу с ней, - когда вы изменяете размер окна, уменьшая его, меню рушится, но все равно открывается под логотипом. Я бы очень хотел, чтобы он расширялся от кнопки, которая нажата. Любая идея, как это решить? – Archetype90

+0

Вы можете изменить 'class =" col-md-xx "', который я добавил в 'class =" col-xs-xx "'. Это предотвратит стекирование столбцов на любой ширине экрана, но ваше меню все равно будет сбрасываться, оставив изображение влево. Хотя изображение будет довольно маленьким при действительно малой ширине экрана. Возможно, вам захочется добавить минимальную ширину изображения, чтобы она не стала слишком малой. – Trucktech

0

http://jsfiddle.net/jx6e857y/

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

HTML: Переключение навигации

 </button> 
    </div> 
    <div class="collapse navbar-collapse" id="example-navbar-collapse"> 
     <div class="container-fluid"> 
      <ul class="nav navbar-nav"> 
       <li><a href="#">Search</a> 
       </li> 
       <li><a href="#">Archives</a> 
       </li> 
       <li><a href="#">Education</a> 
       </li> 
       <li><a href="#">About</a> 
       </li> 
      </ul> 
      <br /> 
      <ul class="nav navbar-nav"> 
       <li><a href="#"><i class="glyphicon glyphicon-road"></i></a> 
       </li> 
       <li><a href="#"><i class="glyphicon glyphicon-leaf"></i></a> 
       </li> 
       <li><a href="#"><i class="glyphicon glyphicon-phone"></i></a> 
       </li> 
       <li><a href="#"><i class="glyphicon glyphicon-link"></i></li> 
      </ul> 
      </div> 
      <span class="additional-text">This is your additional text</span> 
     </div> 

    </nav> 

CSS переопределяет: (Убедитесь, что это после того, как файл bootstrap.css)

/*md+ DESKTOP */ 
@media (min-width: 768px) { 
    .collapse.navbar-collapse .nav.navbar-nav:first-child { 
     border-bottom: 1px solid grey; 
    } 
    .collapse.navbar-collapse .container-fluid { 
     float:right; 
    } 
    .additional-text { 
     position:absolute; 
     bottom:0px; 
     margin-bottom:8px; 
     margin-left:8px; 
     font-size:22px; 
     color:grey; 
     cursor:arrow; 
    } 
} 
/* md- overrides MOBILE */ 
@media (max-width: 767px) { 
    .collapse.navbar-collapse .nav.navbar-nav:first-child { 
     border-bottom: 1px solid lightgrey; 
     margin-bottom: 0px; 
    } 
    .collapse.navbar-collapse .nav.navbar-nav:first-child li:last-child { 
     border-bottom: 1px solid lightgrey; 
     margin-bottom: 0px; 
    } 
    .collapse.navbar-collapse .nav.navbar-nav:last-child li:first-child a { 
     padding-top: 0px; 
    } 
    .navbar-header img { 
     max-height:80px; 
    } 
    .collapse.navbar-collapse.in .nav.navbar-nav { 
     float:none !important; 
     display:block; 
    } 
    .additional-text { 
     position:relative; 
     font-size:22px; 
     display:none; 
    } 
} 
Смежные вопросы