Bootstrap 4 导航栏切换器未显示

Posted

技术标签:

【中文标题】Bootstrap 4 导航栏切换器未显示【英文标题】:Bootstrap 4 navbar toggler not showing 【发布时间】:2018-02-16 10:12:28 【问题描述】:

这是我第一次尝试使用 Bootstrap 4 beta。我现在在 BS3 中创建并运行了一个慈善团体网站。我正在使用固定顶部导航栏和自定义 CSS。当站点被查看得更小而不是全屏时,切换图标不会出现。你能帮助我吗?我希望它像导航链接一样是白色的,并且悬停将链接更改为阅读。 这是标题链接

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">    
<!-- Custom styles for this template -->
<link href="css/custombs4.css" rel="stylesheet"> `

js代码链接在页面底部

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>

这是我的代码。

/* Navbar */

.navbar-custom 
    background-color: #3193de;



/* change the brand and text color */

.navbar-custom .navbar-brand,
.navbar-custom .navbar-text 
    text-decoration: none; color: #fff;



/* change the link color */

.navbar-custom .navbar-nav .nav-link 
   text-decoration: none; color: #fff;



/* change the color of active or hovered links */

.navbar-custom .nav-item.active .nav-link,
.navbar-custom  
  text-decoration: none;  color: #fff;


.nav-item .nav-link:hover 
    text-decoration: none; color: #ff0000;


/* for dropdown only - change the color of dropdown */

.navbar-custom .dropdown-menu 
    background-color: #3193de;


.navbar-custom .dropdown-item 
    text-decoration: none; color: #fff;


.navbar-custom .dropdown-item:hover,
.navbar-custom .dropdown-item:focus 
    text-decoration: none; color: #ff0000;
    background-color:#3193de;

.navbar-header .navbar-toggler 
  border: 0;

.navbar-toggler-icon 
  color: #fff;

.navbar-toggler-icon:hover 
  background: #ff0000;
<nav class="navbar navbar-custom navbar-expand-md">
      
<a class="navbar-brand" href="#">AHEPA 215</a>


<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar-custom" aria-controls="navbar-custom" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>
      
     
<div class="collapse navbar-collapse" id="navbarCollapse">
        
<ul class="navbar-nav mx-auto">
          
<li class="nav-item">
            
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
          
</li>
          
<li class="nav-item dropdown">
                
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">About</a>
                
<div class="dropdown-menu dropdown-menu-right">
                    
<a class="dropdown-item" href="#">AHEPA</a>
                    
<a class="dropdown-item" href="#">Chapter 215 Brothers</a>
                    
</li>          
<li class="nav-item">
            
<a class="nav-link" href="scholarship.html">Scholarships</a>
          
</li>
   
<li class="nav-item">
            
<a class="nav-link" href="photos.html">Photos</a>
          
</li>
 
<li class="nav-item">
            
<a class="nav-link" href="join.html">Join</a>
          
</li>
 
<li class="nav-item">
            
<a class="nav-link" href="calendar.html">Calendar</a>
          
</li>
 
<li class="nav-item">
            
<a class="nav-link" href="contact.html">Contact</a>
          
</li>
      
</ul>

<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="https://www.facebook.com/portsmouth.ahepa" target="_blank"><i class="fa fa-facebook"></i></a>
</li> 
<li class="nav-item">
<a class="nav-link" href="mailto:ahepa215@gmail.com"><i class="fa fa-envelope"></i></a>
</li> 
</ul>       
</div>
    
</nav>

该页面在此处直播http://ahepa215.org/navbar-top-fixed.html

【问题讨论】:

Bootstrap 4 Change Hamburger Toggler Color, and this的可能重复 不,我没有使用 BS svg。我先读了那篇文章,但没有任何帮助 .navbar-toggler-icon BS svg。正如其他答案中所解释的那样,您需要navbar-darknavbar-light 才能使图标出现:codeply.com/go/dmGeKxPBek .. 切换器上的data-target 也有误 【参考方案1】:

@mlegg,由于id 属性与button 上的data-toggler 属性值不同,您的切换器图标没有切换。下面的代码显示了它应该是什么。

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


<div class="collapse navbar-collapse" id="navbarCollapse">

至于切换图标的样式,可以使用以下代码:

.navbar-toggler-icon 
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255,255,255, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");

要彻底了解这里发生的事情,请查看@ZimSystem 在此stack overflow question 中的回答。最终,您必须在background-image 的 URL 中设置 stroke 属性的值,如下所示:

stroke='rgba(255,255,255, 1)'

查看此codeply project

【讨论】:

您应该更新答案以解释解决方案是将 SVG 背景图像添加到自定义 CSS

以上是关于Bootstrap 4 导航栏切换器未显示的主要内容,如果未能解决你的问题,请参考以下文章

单击切换器后,Bootstrap 4 导航未扩展 [重复]

Bootstrap 4 - 导航栏切换不起作用。它没有显示任何导航链接

Bootstrap 4 导航栏切换损坏

导航栏切换器不适用于 Bootstrap 4

Bootstrap 4 可切换导航栏

Laravel 导航栏切换在 bootstrap 4.4.1 和 jquery 3.3 上不起作用