html - 导航栏上的 float Logo ,横幅中有内部阴影 - Bootstrap

标签 html twitter-bootstrap css less

使用 Bootstrap 实现跟随的正确方法应该是什么?

Mockup of floating logo over navigation bar with inner shadow

Logo 从导航栏“出来”并延伸到横幅上方。横幅有内部阴影,图像应该在其后面旋转。响应时,导航应以典型的 Bootstrap 方式折叠。

到目前为止,我已经能够将 Logo 置于中心,并通过以下方式折叠由两部分组成的导航:

<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 中的输出面板以查看正常导航)

现在的问题是关于阴影以及如何使 Logo 与横幅重叠。

布局设置为固定宽度,所以我的下一次尝试是使用绝对定位。但是在 HTML 中,横幅必须出现在导航之前,这听起来不对。

最佳答案

要使 Logo 重叠横幅,您需要将属性 positionz-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
为了使图像居中,我为 div.collapse 使用了 text-center 类(它是 navbar-brand 的父级)。 然后,为 navbarlogo 制作阴影我使用了 Green 的建议,谢谢他:

.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-queries 以折叠navbar。如果您只需要 container 类,只需在 @media-queries 中使用 max-width 来增加它。

JSFiddle-example

关于html - 导航栏上的 float Logo ,横幅中有内部阴影 - Bootstrap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36665351/

相关文章:

javascript - 输入类型 ="text"与 Bootstrap 数据规则 ="quantity"的占位符

javascript - 更改悬停时的图像

css - Ruby on Rails - 强制复选框水平排列

css - 推特 Bootstrap : using submit form as drop down menu items?

javascript - Bootstrap 模态消失

html - 我的 nav 和 div 不会在一边,不知道怎么了

css - 如何将过渡应用于设置为显示 :none? 的元素

html - GRAV 子导航

jquery - 更改 jQuery 对话框窗口位置

javascript - 水平滚动表以适应和缩小父级