bootstrap-为什么我的导航栏不出现在下一行?

时间:2018-08-14 06:01:24

标签: html css twitter-bootstrap

我正在尝试创建一个响应式网站:调整窗口大小时,您将获得“移动”视图。因此出现一个按钮。通过按下按钮,您可以切换导航栏(使其显示和消失)。 这个网站的this做得很好:https://blackrockdigital.github.io/startbootstrap-freelancer/

所以我尝试自己复制这种行为:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>test</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>      
    <link rel="stylesheet" type="text/css" href="css/test.css">

</head>
<body>

    <!--Navigation bar-->
    <nav class="navbar navbar-custom navbar-fixed-top" id="myNavbar">
        <div class="container">
            <div class="navbar-brand">
                <img src="images/testLogo.png">
            </div>
            <button class="navbar-toggler navbar-toggler-right text-uppercase bg-primary text-white rounded" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div id="navbarResponsive" class="collapse navbar-collapse">
                <ul class="nav navbar-nav navbar-right" id="ul">    
                <li class="active"><a href="main.html">Home</a></li>
                    <li><a href="services.html">Services</a></li>
                <li><a href="projects.html">Partners</a></li>
                <li><a href="contact.html">Contact</a></li>
            </ul>
            </div>
        </div>
    </nav>
</body>
</html>

CSS:

/**
 * Navigation bar.
 */

#myNavbar
{
    padding-top: 1.5rem;
    padding-bottom: 2.5rem;
    background-color: rgb(100, 100, 100);
}

#navbarResponsive
{
    width: 65%;
}

.navbar-collapse
{
    flex-basis: 100%;
    flex-grow: 1;
}

.nav > li > a
{
    font-size: 18px
}

.navbar-brand
{
    font-size: 28px;
}

img
{
    height: 70px;
    width: 70px;
    float: right;
    margin-top:-20px;
    margin-left: 20px;
}

.navbar > .container, .navbar > .container-fluid
{
    display: flex;
    justify-content: space-between;
}

@media (min-width: 900px)
{
    .navbar-toggler
    {
        display:none;
    }
}

.container
{
    width: 100%;
}

button
{
    background-color: transparent;
}

.bg-primary
{
    background-color: transparent;
}
.navbar-toggler-icon
{
    background-color: transparent;
    display: inline-block;
    width: 1.5em;
    height: 1.5em;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

一切似乎都很好,但是当按下按钮时,导航栏(主页-服务-合作伙伴-联系人)不会出现在下一行,而是出现在同一行,并且所有内容都移至左侧:https://imgur.com/a/8JU2oKT

有人可以告诉我为什么导航栏没有显示在下一行吗?

2 个答案:

答案 0 :(得分:0)

快速浏览一下您的代码,css似乎不是问题,而是div的位置。尝试将HTML替换为此:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>test</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>      
    <link rel="stylesheet" type="text/css" href="css/test.css">

</head>
<body>

    <!--Navigation bar-->
    <nav class="navbar navbar-custom navbar-fixed-top" id="myNavbar">
        <div class="container">
            <div class="navbar-brand">
                <img src="images/testLogo.png">
            </div>
            <button class="navbar-toggler navbar-toggler-right text-uppercase bg-primary text-white rounded" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>

        </div>
        <div id="navbarResponsive" class="collapse navbar-collapse">
                <ul class="nav navbar-nav navbar-right" id="ul">    
                <li class="active"><a href="main.html">Home</a></li>
                    <li><a href="services.html">Services</a></li>
                <li><a href="projects.html">Partners</a></li>
                <li><a href="contact.html">Contact</a></li>
            </ul>
            </div>
    </nav>
</body>
</html>

我将div替换为容器div之外但仍位于导航栏中的实际菜单。

答案 1 :(得分:0)

尝试此代码;

HTML

<!-- .navbar -->
<nav class="navbar navbar-full navbar-dark bg-primary">
<button class="navbar-toggler hidden-lg-up" type="button" data-toggle="collapse" data-target="#mainNavbarCollapse">
&#9776;
</button>
<a class="navbar-brand" href="#">
    <img class="img-rounded" src="images/testLogo.png">
</a>
<div class="collapse navbar-toggleable-md" id="mainNavbarCollapse">
    <ul class="nav navbar-nav pull-lg-right">
        <li class="nav-item">
            <a class="nav-link" href="main.html">Home <span class="sr-only">(current)</span></a>
        </li>
        <li class="nav-item">
            <a class="nav-link" href="services.html">Services</a>
        </li>
        <li class="nav-item">
            <a class="nav-link" href="projects.html">Partners</a>
        </li>
        <li class="nav-item">
            <a class="nav-link" href="contact.html">Contact</a>
        </li>
    </ul>
</div>
</nav>
<!-- /.navbar -->

CSS

@media (max-width: 62em) {
.navbar-nav {
    padding-top: .425rem;
    padding-left: 0.75rem;
}
.navbar-nav .nav-item {
    float: none;
}
.navbar-brand {
    float: right;
}
.navbar-brand,
.navbar-nav .nav-item {
    display: block;
}
.navbar-nav .nav-item + .nav-item {
    margin-left: 0;
}
.dropdown-menu {
    position: relative;
    float: none;
}
}