使用 Bootstrap 实现跟随的正确方法应该是什么?
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 重叠横幅,您需要将属性 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
。
为了使图像居中,我为 div.collapse
使用了 text-center
类(它是 navbar-brand
的父级)。
然后,为 navbar
和 logo
制作阴影我使用了 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
来增加它。
关于html - 导航栏上的 float Logo ,横幅中有内部阴影 - Bootstrap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36665351/