【问题标题】:Changing the color of active nav-item更改活动导航项的颜色
【发布时间】:2021-06-23 15:59:19
【问题描述】:

我有一个用 Bootstrap 设计的navbar。当nav-item 的类设置为active 时,我正在尝试使其具有不同的颜色。

但是我不能这样做。当我设置background 时,背景颜色正在改变,但是当我使用color 时,颜色没有改变。请注意,我使用的是 Bootstrap v4。

$(document).ready(function() {
  "use strict";

  $('ul.navbar-nav > li').click(function(e) {
    e.preventDefault();
    $('ul.navbar-nav > li').removeClass('active');
    $(this).addClass('active');
  });
});
.navbar-toggler:focus {
  outline: 0;
}
.navbar-nav > .active {
  color: aqua!important;  **// THIS DOES NOT WORK**
  background-color: chartreuse; **//THIS WORKS**
}
.nav-item > a:hover {
  color: aqua!important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav class="navbar navbar-light animated fadeInLeft" style="background-color: #C0C0C0 ;">
  <button class="navbar-toggler navbar-toggler-left" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="#navbarNav" aria-expanded="false" aria-label="Toggle navigation"><span class="lines"></span><span class="lines"></span><span class="lines"></span>
  </button>
  <h1 class="navbar-brand mb-0 move-header ">NavBrand</h1>
  <div class="collapse animated fadeInLeft" id="navbarNav">
    <ul class="navbar-nav">
      <li class="nav-item active">
        <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Features</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Pricing</a>
      </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="#">Disabled</a>
      </li>
    </ul>
  </div>
</nav>

【问题讨论】:

  • 您可以使用以下方法更改所选导航项的颜色:` .active a { color : aqua; }`

标签: jquery html css twitter-bootstrap


【解决方案1】:

问题是因为.nav-item &gt; a:hover.navbar-nav &gt; .active 更具体。要解决此问题,请删除 !important 运算符(因为您应该不惜一切代价避免它)并使您想要覆盖的规则更加具体。

.navbar-nav > .active > a {
  color: aqua;
  background-color: chartreuse;    
}
.nav-item > a:hover {
  color: aqua;
}

$(document).ready(function() {
  "use strict";

  $('ul.navbar-nav > li').click(function(e) {
    e.preventDefault();
    $('ul.navbar-nav > li').removeClass('active');
    $(this).addClass('active');
  });
});
.navbar-nav > .active > a {
  color: aqua;
  background-color: chartreuse;
}
.nav-item > a:hover {
  color: aqua;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://npmcdn.com/tether@1.2.4/dist/js/tether.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"></script>

<ul class="navbar-nav">
  <li class="nav-item active">
    <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> 
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Features</a> 
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Pricing</a> 
  </li>
  <li class="nav-item">
    <a class="nav-link disabled" href="#">Disabled</a> 
  </li>
</ul>

【讨论】:

    【解决方案2】:

    尝试在a 标签上添加颜色 CSS:

    .navbar-nav > .active  a{
        color : aqua;
    }
    

    .navbar-toggler:focus {
      outline: 0;
    }
    
    .navbar-nav>.active {
      color: aqua!important;
      ** // THIS DOES NOT WORK**
      background-color: chartreuse;
      ** //THIS WORKS**
    }
    
    .navbar-nav>.active a {
      color: aqua
    }
    
    .nav-item>a:hover {
      color: aqua!important;
    }
    
    ul li {
      list-style: none;
      margin: 10px
    }
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
    <nav class="navbar navbar-light animated fadeInLeft" style="background-color: #C0C0C0 ;">
      <button class="navbar-toggler navbar-toggler-left" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="#navbarNav" aria-expanded="false" aria-label="Toggle navigation"><span class="lines"></span><span class="lines"></span><span class="lines"></span></button>
      <h1 class="navbar-brand mb-0 move-header ">NavBrand</h1>
      <div class="collapse1 animated fadeInLeft" id="navbarNav">
        <ul class="navbar-nav">
          <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li>
          <li class="nav-item"> <a class="nav-link" href="#">Features</a> </li>
          <li class="nav-item"> <a class="nav-link" href="#">Pricing</a> </li>
          <li class="nav-item"> <a class="nav-link disabled" href="#">Disabled</a> </li>
        </ul>
      </div>
    </nav>

    【讨论】:

      【解决方案3】:
      .active a{
        color: red !important;
      }
      

      这应该适用于覆盖自定义 bootstrap 4 主题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-21
        • 1970-01-01
        相关资源
        最近更新 更多