使用Bootstrap实现以下的正确方法是什么?
徽标“从导航栏中”出来并延伸到横幅上。横幅有内部阴影,图像应在其后面旋转。在响应时,导航应以典型的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导航之前,这听起来不对。
答案 0 :(得分:1)
要制作徽标重叠横幅,您需要向图片的父级添加属性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-queries以折叠navbar
。如果您只需要container
课程,只需在@ media-queries中使用max-width
来增加课程。