引导4:与响应式导航条元素作斗争



重新设计一个旧网页,基于Bootstrap 3,我试图用Bootstrap 4从头开始建立一个新页面。我从导航栏元素开始,它应该总是显示在顶部,左边有一个品牌标志,右边有一些页面链接——原则上不特别,但我没有管理它。我的愿望越来越少,我想解决这个问题,我有图标菜单和链接之间的切换。

我只能让图标菜单按钮始终可见(没有"collapse")在按钮类中),也适用于大屏幕,或者永远不可见(使用"在按钮类中)。其余的代码应该几乎是标准的,就像在许多示例和教程中读到的那样。请您提示一下,是什么地方出了问题?

提前感谢,拉尔夫

更新:我用检查器调查了一下,似乎导航条工具按钮在那里,但是完全透明!这是我的问题,我必须定义这个按钮的颜色(它的工作原理与背景颜色,但我错过了里面的行),或者这可能是Javascript和切换功能的问题?

下面是代码-应该是标准的(所有的化妆品都不重要,我将关心以后的css)。

<html lang="de">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Testseite</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-default bg-light navbar-fixed-top py-lg-0">
<div class="container-fluid">
<a href="#" class="navbar-brand"><img src="./img/smile.png" width="60" height="60" alt="Logobeschreibung"></a>
<button type="button" class="navbar-toggle collapse" data-toggle="collapse" data-target="#navbarResponsive" aria-expanded="false" aria-label="Toogle navigation">
<span class="sr-only">Toggle navigation</span>
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse" id="navbarResponsive">
<ul class="navbar-nav">
<li class="nav-item active"><a href="#">Startseite<span class="sr-only">(current)</span></a>
</li>
<li class="nav-item"><a class="nav-link" href="#">Seite1</a></li>
<li class="nav-item"><a class="nav-link" href="#">Seite2</a></li>
<li class="nav-item"><a class="nav-link" href="#">Seite3</a></li>
</ul>
</div>
</div>
</nav>
<!-- Menu -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj " crossorigin="anonymous "></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx " crossorigin="anonymous "></script>
</body>
</html>

我假设你想总是看到这个块的Bootstrap总是显示在你的头,正确吗?

<button type="button" class="navbar-toggle collapse" data-toggle="collapse" data-target="#navbarResponsive" aria-expanded="false" aria-label="Toogle navigation">
<span class="sr-only">Toggle navigation</span>
<span class="navbar-toggler-icon"></span>
</button>

由于Bootstrap使用媒体查询根据视口宽度控制其外观,因此强制其始终显示的简单方法如下。将以下内容添加到样式表中:

.navbar-toggle {
display:inline-block !important;
}

由于这个原因,我不是Bootstrap导航的粉丝。它只是感觉不完整,很难用CSS来定制。

请检查下面的代码好吗?希望它对你有用。您需要在切换按钮中使用navbar-toggler类,而不是根据引导文档使用navbar-toggle。我们已经给出了navbar-toggler的背景,因为你使用了导航栏bg-light类。

请参考此链接:https://jsfiddle.net/yudizsolutions/3vmuec5g/10/

.navbar .navbar-toggler {
background: #0000ff;
}
<html lang="de">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Testseite</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-default bg-light navbar-fixed-top py-lg-0">
<div class="container-fluid">
<a href="#" class="navbar-brand"><img src="./img/smile.png" width="60" height="60" alt="Logobeschreibung"></a>
<button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toogle navigation">
<span class="sr-only">Toggle navigation</span>
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse" id="navbarResponsive">
<ul class="navbar-nav">
<li class="nav-item active"><a href="#">Startseite<span class="sr-only">(current)</span></a>
</li>
<li class="nav-item"><a class="nav-link" href="#">Seite1</a></li>
<li class="nav-item"><a class="nav-link" href="#">Seite2</a></li>
<li class="nav-item"><a class="nav-link" href="#">Seite3</a></li>
</ul>
</div>
</div>
</nav>
<!-- Menu -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj " crossorigin="anonymous "></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx " crossorigin="anonymous "></script>
</body>
</html>

最新更新