2016-04-16 3 views
2

Какой должен быть правильный способ реализовать следующее с помощью Bootstrap?Плавающий логотип над навигационной панелью с внутренней тенью в баннере - Bootstrap

Mockup of floating logo over navigation bar with inner shadow

Логотип «выходит» из панели навигации и простирается на баннере. Баннер имеет внутреннюю тень и за которой изображения должны вращаться. Навигация в этом случае будет рушиться в типичном стиле Bootstrap, когда он будет реагировать.

До сих пор я был в состоянии принести логотип в центре и имеют две части навигации коллапс со следующим:

<nav class="navbar navbar-inverse navbar-main"> 
    <div class="container"> 
    <!-- Brand and toggle get grouped for better mobile display --> 
    <div class="navbar-header"> 
     <a class="navbar-brand visible-xs" href="index.php">Logo</a> 
     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> 
      <span class="sr-only">Toggle navigation</span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
     </button> 
    </div> 
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
     <ul class="nav navbar-nav"> 
      <li class="active"><a href="index.php">Home <span class="sr-only">(current)</span></a></li> 
      <li><a href="about-us.php">About Us</a></li> 
      <li><a href="media.php">Media</a></li> 
      <li><a href="events.php">Events</a></li> 
     </ul> 
     <div class="navbar-brand hidden-xs"> 
      <a class="white-circle" href="index.php"> 
       <img class="logo" src="http://excitive.me/demo/temp/logo.svg" alt="Logo"> 
      </a> 
     </div> 
     <ul class="nav navbar-nav navbar-right"> 
      <li><a href="things-to-do.php">Things To Do</a></li> 
      <li><a href="offers.php">Offers</a></li> 
      <li><a href="index.php#location">Location</a></li> 
      <li><a href="book-now.php">Book Now</a></li> 
     </ul> 
    </div><!-- /.navbar-collapse --> 
    </div><!-- /.container-fluid --> 
</nav> 

<div class="container"> 
    <div id="carousel-example-generic" class="carousel slide" data-ride="carousel"> 
     <!-- Indicators --> 
     <ol class="carousel-indicators"> 
      <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li> 
      <li data-target="#carousel-example-generic" data-slide-to="1"></li> 
      <li data-target="#carousel-example-generic" data-slide-to="2"></li> 
     </ol> 
     <!-- Wrapper for slides --> 
     <div class="carousel-inner" role="listbox"> 
      <div class="item active"> 
       <img src="http://excitive.me/demo/temp/banner-home-01.jpg" alt="Banner Alt"> 
       <div class="carousel-caption"> 
        Lorem ipsum 
       </div> 
      </div> 
      <div class="item"> 
       <img src="http://excitive.me/demo/temp/banner-home-02.jpg" alt="Banner Alt"> 
       <div class="carousel-caption"> 
        Dolor sit 
       </div> 
      </div> 
      <div class="item"> 
       <img src="http://excitive.me/demo/temp/banner-home-03.jpg" alt="Banner Alt"> 
       <div class="carousel-caption"> 
        Amet consectetur 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

CSS:

.navbar .container { 
    text-align: center; 
} 
.navbar-collapse .navbar-brand { 
    display: inline-block; 
    float: none; 
    padding: 0; 
    margin: 0 !important; 
    overflow: visible; 
} 
.navbar-collapse .navbar-brand .white-circle { 
    display: block; 
    width: 161px; 
    height: 161px; 
    background-color: white; 
    border-radius: 50%; 
    border: 1px dotted red; 
} 
.navbar-collapse .navbar-brand .white-circle .logo { 
    width: 144px; 
} 

https://jsfiddle.net/rvnwp1xv/

(Пожалуйста, увеличьте панель вывода в JSFiddle, чтобы просмотреть нормальную навигацию)

Теперь вопрос остается о тени и о том, как сделать логотип перекрытием баннера.

Макет установлен на фиксированную ширину, поэтому моя следующая попытка - использовать абсолютное позиционирование. Но для этого баннера нужно подойти до навигации в HTML, что звучит не так.

+1

Пожалуйста, добавьте JSfiddle с соответствующим кодом, так что мы можем восстановить вашу проблему и работать над ней. – geeksal

+0

@geeksal Я добавил фрагмент JSFiddle. – excitive

+0

@IgorIvancha Я добавил HTML вместе с JSFiddle. – excitive

ответ

0

Чтобы сделать логотип перекрытия баннера, вам необходимо добавить свойства position и z-index к родительскому образу в:

.navbar-collapse .navbar-brand .white-circle { 
    ... 

    position: relative; 
    z-index: 2; 
} 

Затем вам нужно увеличить размер изображения в, чтобы сделать это же с размером родителя:

.navbar-collapse .navbar-brand .white-circle .logo { 
    width: 161px; 
    height: 161px; 
} 

И сделайте круг изображения, вы можете добавить border-radius: 50%, я только что использовал класс bootstrap img-circle.
В центре изображения, я использовал класс text-center для div.collapse (это родительский знак navbar-brand). Затем, чтобы сделать тень для navbar и logo я использовал предложение Грина, спасибо ему:

.navbar-header, 
.collapse.navbar-collapse, 
img.logo { 
    box-shadow: 0px 2px 14px 2px rgba(0, 0, 0, 0.7); 
} 

Но теперь у вас есть еще одна проблема, когда уменьшить размер экрана, в правой части navbar падает изображение! В моем примере я изменил класс container на container-fluid, а затем добавил div.row, чтобы сделать navbar немного больше. Затем я изменил @ media-запросы для свертывания navbar. Если вам нужен только класс container, просто играйте с max-width в @ media-queries, чтобы увеличить его.

JSFiddle-example

Смежные вопросы