Bootstrap 4 个导航栏在移动设备上重叠

Bootstrap 4 navbar overlapping on mobile

我正在学校做一个项目,我正在使用 Bootstrap 4,我对它还很陌生。

我将我的导航栏品牌作为位于导航栏中间的图像。但是当我切换到较小的屏幕时,一些导航栏项目会向下移动到导航栏下方。这还在旋转木马和导航栏之间创建了一个 space。

我怀疑是因为导航栏品牌形象的"absolute"位置。

这是一个 Jsfiddle:jsfiddle(dot)net/zdu9jv99/3/ 我不知道为什么它不能完全工作..... (我不能 post 超过两个链接,这就是为什么我必须做(点)。)

这是在较小的显示器上的样子。 Image that shows the overlapping 这就是它应该的样子。 This is how it looks on bigger screens 这是我的 html 和 css:

    <!DOCTYPE html>
<html lang="sv">

<head>
    <title>Barber Shop</title>
    <meta charset="utf-8">
    <!-- Icon -->
    <link rel="shortcut icon" type="image/x-icon" href="favicon.ico"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- Bootstrap Core CSS -->
    <link rel="stylesheet" href="assets/css/bootstrap.min.css">
    <!-- Font-Awesome Core CSS -->
    <link rel="stylesheet" href="assets/css/font-awesome.min.css">
    <!-- Custom CSS -->
    <link rel="stylesheet" href="assets/css/style.css">
</head>

<body>
    <header>
        <!-- Navigation -->
        <nav class="navbar navbar-dark bg-inverse navbar-static-top navbar-full" style="background-color: #d8c387 !important;">
            <div class="container">
                <div class="row">
                    <div class="col-md-4">
                        <ul class="nav navbar-nav">
                            <li class="nav-item"><a class="nav-link" href="index.html"><i class="fa fa-home icon-padding" aria-hidden="true"></i>Hem</a></li>
                            <li class="nav-item"><a class="nav-link" href="hittafrisor.html"><i class="fa fa-map-marker icon-padding" aria-hidden="true"></i>Hitta frisör</a></li>
                            <li class="nav-item"><a class="nav-link" href="#"><i class="fa fa-picture-o icon-padding" aria-hidden="true"></i>Galleri</a></li>
                        </ul>
                    </div>
                    <div class="col-md-2">
                        <div class="navbar-brand">
                            <a class="white-circle" href="index.html">
                                <img class="img-fluid" src="assets/images/barber-logo.png" alt="Logo">
                            </a>
                        </div>
                    </div>
                    <div class="col-md-6">

                        <ul class="nav navbar-nav float-md-right">
                            <li class="nav-item"><a class="nav-link" href="#"><i class="fa fa-info icon-padding" aria-hidden="true"></i>Om oss</a></li>
                            <li class="nav-item"><a class="nav-link" href="#"><i class="fa fa-phone icon-padding" aria-hidden="true"></i>Kontakt</a></li>
                        </ul>
                    </div>
                </div>
            </div>
        </nav>
    </header>
    <main>

css:

    /* NAVBAR */
.navbar {
    height: 58px;
    z-index: 2 !important;
}

.navbar-brand {
  display: inline-block;
  float: none;
  padding: 0;
  margin: 0 !important;
  overflow: visible;
}

.navbar-brand img {
    z-index: 3 !important;
}

.navbar-brand .white-circle {
  display: block;
  width: 161px;
  height: 10px;
  border-radius: 50%;
  position: absolute;
}

.navbar {
  text-align: center;
}

.nav-link {
  color: #741833 !important;
}

/* NAVBAR FONT SIZE */
.nav a{
  font-size: 17px;
}

我也把项目上传到as site了,如果你想看全貌的话。如果您有任何其他意见或其他任何事情,请随时批评我,我确信我犯了更多错误。该站点是 cpt-keyhole.se(是的,我知道一个奇怪的名字)

这可能只是我错过或误解的一件简单的事情,所以我很感激你的帮助。感谢您的宝贵时间!

左侧菜单中的一个 link 正在下拉,因为其父级 div 中的 space 有限。

您需要在以下移动设备上增加左侧导航 link 的宽度:

@media screen and (max-width: 480px) {
 .leftMenus
  {
    width:300px;
  }
}

这是适用于当前显示器尺寸的代码,max-width:768px 用于 iPad,max-width:414px 用于 iPhone 6 Plus:

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

    <script src="https://use.fontawesome.com/97755550d3.js"></script>
    <style>
        img.logo-img{
            width:150px;
            height:150px;
            border-radius:50%;
            position:absolute;
            left:50%;
            /* bring your own prefixes */
            transform: translate(-50%, -10%);
        }


        .navbar-default .navbar-nav > li > a {
          color:#741833;
          font-size:20px;
        }

        .navbar-default .navbar-nav > li > a >i{
          margin-right:10px;
        }

        li.left-menu{
            position:absolute;
            right:5%;
        }
        li.left-menu1{
            position:absolute;
            right:13%;
        }

        @media only screen and (max-device-width: 768px) and (orientation:portrait){
            img.logo-img{
                width:100px;
                height:100px;
                border-radius:50%;
                position:absolute;
                top:10px;
                left:50%;
                /* bring your own prefixes */
                transform: translate(-50%, -10%);
            }

            .navbar-default .navbar-nav > li > a {
              color:#741833;
              font-size:16px;
            }

            .navbar-default .navbar-nav > li > a >i{
              margin-right:5px;
            }

            .spl-container{
                padding:0;
            }

            .navbar-brand{
                padding:0;
            }

            li.left-menu{
                position:absolute;
                right:5%;
            }
            li.left-menu1{
                position:absolute;
                right:17%;
            }
        }

        @media only screen and (max-device-width: 414px) and (orientation:portrait){
            img.logo-img{
                width:80px;
                height:80px;
                border-radius:50%;
                position:absolute;
                top:10px;
                left:50%;
                /* bring your own prefixes */
                transform: translate(-50%, -10%);
            }

            .navbar-default .navbar-nav > li > a {
              color:#741833;
              font-size:16px;
              margin-left:10px;
            }

            li.left-menu{
                position:relative;
                left:5px;
            }
            li.left-menu1{
                position:relative;
                left:5px;
            }

            li.first-menu{
                margin-top:60px;
            }

            .navbar-toggle{
                position:absolute;
                right:0;
            }
        }

    </style>
</head>
<body>
    <nav class="navbar navbar-default" style="background-color:#d8c387;">
        <div class="container-fluid spl-container">
            <div class="navbar-brand">
                <button class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a href="#">
                    <img src="download.png" alt="logo" class="logo-img" />
                </a>
            </div>

            <div class="collapse navbar-collapse" id="navbar">
                <ul class="nav navbar-nav">
                    <li class="first-menu"><a href="#"><i class="fa fa-home" aria-hidden="true"></i>Hem</a></li>
                    <li><a href="#"><i class="fa fa-map-marker" aria-hidden="true"></i>Hitta Frisor</a></li>
                    <li><a href="#"><i class="fa fa-picture-o" aria-hidden="true"></i>Galleri</a></li>
                    <li class="left-menu"><a href="#"><i class="fa fa-info" aria-hidden="true"></i>Om oss</a></li>
                    <li class="left-menu1"><a href="#"><i class="fa fa-phone" aria-hidden="true"></i>Kontakt</a></li>
                </ul>
            </div>
        </div>
    </nav>
</body>
</html>