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>
我正在学校做一个项目,我正在使用 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>