【问题标题】:bootstrap - Why does my navbar not appear on the next line?bootstrap - 为什么我的导航栏没有出现在下一行?
【发布时间】:2018-08-14 06:01:24
【问题描述】:

我正在尝试创建一个响应式网站:调整窗口大小时,您会看到“移动”视图。于是出现了一个按钮。通过按下按钮,您可以切换导航栏(使其出现和消失)。 这个网站做的很好thishttps://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

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

【问题讨论】:

标签: html css twitter-bootstrap


【解决方案1】:

快速浏览一下您的代码,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 外部但仍在导航内部。

【讨论】:

  • 我无法接受您的回答,因为不幸的是,在使用您的代码时,导航栏(合作伙伴、联系人...)也在下一行。我只希望它在缩小窗口时在那里 bw。
【解决方案2】:

试试这个代码;

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;
}
}

【讨论】:

猜你喜欢
  • 2015-09-14
  • 2022-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-13
  • 1970-01-01
  • 2019-11-25
  • 1970-01-01
相关资源
最近更新 更多