Bootstrap 4 使用切换按钮连接侧面菜单(响应式)
Posted
技术标签:
【中文标题】Bootstrap 4 使用切换按钮连接侧面菜单(响应式)【英文标题】:Bootstrap 4 Connect a side menu with toggle button (responsive) 【发布时间】:2021-05-14 20:51:57 【问题描述】:我正在尝试向网页添加一个侧边菜单,该菜单的响应类似于导航栏(不幸的是,我仍然在顶部有一个导航栏)。
我在https://jsfiddle.net/ralfavatar/crve8nxb/ 中发布了代码,如果您放大结果窗口,您应该会在左侧(黄色)看到一个菜单,该菜单被隐藏到一定的屏幕尺寸 --> 很好。
但我想要一个切换按钮(如导航栏中的汉堡包按钮),它会像下拉菜单一样显示这个菜单。
我没有找到任何提示,也不知道如何将带有菜单的切换按钮连接到现有菜单,或者,如果我愿意,可以使用此按钮切换现有菜单。
有人对此有想法吗?
代码如下:
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<!-- Content -->
<section class="mainsection">
<div class="container-fluid">
<div class="row">
<div class="col-xs-1 col-sm-3" id="debug1">
<nav class="nav nav-pills flex-column d-none d-lg-block">
<a class="nav-item nav-link active" href="#aboutme" data-toggle="pill">Über mich</a>
<a class="nav-item nav-link" href="#location" data-toggle="pill">Location</a>
<a class="nav-item nav-link" href="#products" data-toggle="pill">Dinge</a>
<a class="nav-item nav-link" href="#interestingthings" data-toggle="pill">Interessantes</a>
</nav>
</div>
<div class="col-xs-pull-12 col-sm-9" id="debug2">
<div class="maincontent align-content-lg-center">
<div class="tab-content">
<div class="tab-pane active fade in" id="aboutme">
Hallo 1
</div>
<div class="tab-pane active fade in" id="location">
Hallo 2
</div>
<div class="tab-pane fade" id="products">
Hallo 3
</div>
<div class="tab-pane fade" id="interestingthings">
Hallo 4
</div>
</div>
</div>
</div>
</div>
</div>
</section>
【问题讨论】:
【参考方案1】:使用切换(汉堡)按钮影响侧边栏黄色占位符的方法是简单地更改具有目标 id (#debug1) 的按钮的 data-target html 属性。 这样您就可以将菜单移动到黄色区域的侧边栏并进行切换。 在您的示例中,黄色区域将出现/消失,但您可以在其上构建菜单侧边栏。
<a href="index.html" class="navbar-brand">Moin</a>
<button type="button" class="navbar-toggler ml-auto"
data-toggle="collapse" data-target="#debug1" aria-expanded="false"
aria-controls="navbarResponsive" aria-label="Toogle navigation">
更新:
我已经从导航栏中添加(复制/粘贴)汉堡包按钮并将其放置在黄色部分和目标红色区域中,该区域应模拟下拉菜单。对 HTML 进行重新排序,您也可以将其放在黄色部分内。我希望这会有所帮助。
<!-- Content -->
<section class="mainsection">
<div class="container-fluid">
<div class="row">
<div class="col-xs-1 col-sm-3" id="debug1">
<button type="button" class="navbar-toggler ml-auto"
data-toggle="collapse" data-target="#debug2" aria-expanded="false" aria-controls="navbarResponsive" aria-label="Toogle navigation">
<span class="sr-only">Toggle navigation</span>
<span class="navbar-toggler-icon"></span>
</button>
<nav class="nav nav-pills flex-column d-none d-lg-block">
<a class="nav-item nav-link active" href="#aboutme" data-toggle="pill">Über mich</a>
<a class="nav-item nav-link" href="#location" data-toggle="pill">Location</a>
<a class="nav-item nav-link" href="#products" data-toggle="pill">Dinge</a>
<a class="nav-item nav-link" href="#interestingthings" data-toggle="pill">Interessantes</a>
</nav>
</div>
<div class="col-xs-pull-12 col-sm-9" id="debug2">
<div class="maincontent align-content-lg-center">
<div class="tab-content">
<div class="tab-pane active fade in" id="aboutme">
Hallo 1
</div>
<div class="tab-pane active fade in" id="location">
Hallo 2
</div>
<div class="tab-pane fade" id="products">
Hallo 3
</div>
<div class="tab-pane fade" id="interestingthings">
Hallo 4
</div>
</div>
</div>
</div>
</div>
</div>
</section>
更新 2(我现在有针对性的侧边栏菜单来切换黄色部分侧边栏中的按钮):
<!-- Content -->
<section class="mainsection">
<div class="container-fluid">
<div class="row">
<div class="col-xs-1 col-sm-3">
<button type="button" class="navbar-toggler ml-auto" data-toggle="collapse" data-target="#debug3" aria-expanded="false" aria-controls="navbarResponsive" aria-label="Toogle navigation">
<span class="sr-only">Toggle navigation</span>
<span class="navbar-toggler-icon"></span>
</button>
<nav class="nav navbar-collapse collapse nav-pills flex-column d-none d-lg-block" id="debug3">
<a class="nav-item nav-link active" href="#aboutme" data-toggle="pill">Über mich</a>
<a class="nav-item nav-link" href="#location" data-toggle="pill">Location</a>
<a class="nav-item nav-link" href="#products" data-toggle="pill">Dinge</a>
<a class="nav-item nav-link" href="#interestingthings" data-toggle="pill">Interessantes</a>
</nav>
</div>
<div class="col-xs-pull-12 col-sm-9" id="debug2">
<div class="maincontent align-content-lg-center">
<div class="tab-content">
<div class="tab-pane active fade in" id="aboutme">
Hallo 1
</div>
<div class="tab-pane active fade in" id="location">
Hallo 2
</div>
<div class="tab-pane fade" id="products">
Hallo 3
</div>
<div class="tab-pane fade" id="interestingthings">
Hallo 4
</div>
</div>
</div>
</div>
</div>
</div>
</section>
更新 3:
<!-- Content -->
<section class="mainsection">
<div class="container-fluid">
<div class="row">
<div class="col-xs-1 col-sm-3" style="background-color: #000">
<button type="button" class="navbar-toggler ml-auto" data-toggle="collapse" data-target="#debug3" aria-expanded="false" aria-controls="navbarResponsive" aria-label="Toogle navigation">
<span class="sr-only">Toggle navigation</span>
<span class="navbar-toggler-icon"></span>
</button>
</div>
</div>
<div class="row">
<div class="col-xs-1 col-sm-3" id="debug3">
<nav class="nav navbar-collapse collapse nav-pills flex-column d-none d-lg-block">
<a class="nav-item nav-link active" href="#aboutme" data-toggle="pill">Über mich</a>
<a class="nav-item nav-link" href="#location" data-toggle="pill">Location</a>
<a class="nav-item nav-link" href="#products" data-toggle="pill">Dinge</a>
<a class="nav-item nav-link" href="#interestingthings" data-toggle="pill">Interessantes</a>
</nav>
</div>
<div class="col-xs-pull-12 col-sm-9" id="debug2">
<div class="maincontent align-content-lg-center">
<div class="tab-content">
<div class="tab-pane active fade in" id="aboutme">
Hallo 1
</div>
<div class="tab-pane active fade in" id="location">
Hallo 2
</div>
<div class="tab-pane fade" id="products">
Hallo 3
</div>
<div class="tab-pane fade" id="interestingthings">
Hallo 4
</div>
</div>
</div>
</div>
</div>
</div>
</section>
【讨论】:
感谢您的回复,但我不想将导航栏移到黄色区域。我想要另一个菜单,它可以切换与导航栏相对应的屏幕大小,但有另一个功能。所以,最后我需要两个按钮 - 一个用于导航栏(它有效),一个用于我自己的侧面菜单(问题意图)。最好的问候,拉尔夫 再次感谢您的支持。我将您的代码添加到小提琴中,但它不起作用。我认为有隐形按钮(我尝试添加 navbar-light/navbar-dark 类,但它不起作用)并且按下按钮似乎没有效果。最好的问候,拉尔夫 我已经更新了答案,希望它是您的目标。您可以将侧边栏的切换按钮放置在任何您希望重新排序布局 html 和 css 的地方,只要有设计问题。这只是触发任何 div 目标属性的快速方法。 对不起,我做了另一个更新(汉堡按钮不是它应该看起来的样子)但我希望现在它更清晰一些,只需要对按钮颜色进行一些处理......现在它是希望能展示出这样的方式。希望对您有所帮助。 非常感谢,这表明方向正确。我会玩一点......最好的问候,拉尔夫以上是关于Bootstrap 4 使用切换按钮连接侧面菜单(响应式)的主要内容,如果未能解决你的问题,请参考以下文章
如何为移动屏幕的导航栏项目添加切换按钮,并使用 HTML、CSS 和 Bootstrap v4 将它们切换为下拉菜单