【问题标题】:bootstrap 3 navbar dropdown-toggle not applies all css stylebootstrap 3 navbar dropdown-toggle 不适用所有 CSS 样式
【发布时间】:2018-11-14 17:00:59
【问题描述】:

我正在修改 bootstrap 3 导航栏,但某些 CSS 属性不适用...

我有这个导航栏 HTML:

<nav class="navbar navbar-default">
<div id="navbar-principal" class="container-fluid">

  <div id="navbar-colapsado" class="navbar-header">
    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
      <span class="sr-only">Toggle navigation</span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </button>
    <a id="logo" class="navbar-brand" (click)="onClick('Inicio')" [class.active]="'Inicio'===itemSelected" [routerLink]="['/']"><img src="app/img/logo.jpg" alt="Logo"></a>
  </div>

  <div id="navbar" class="navbar-collapse collapse">
    <ul class="nav navbar-nav navbar-right">  
      <li><a [routerLink]="['/link']">Inicio</a></li>

      <li role="button" class="dropdown">
        <a class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Info<span class="caret">
        </span></a>
        <ul class="dropdown-menu">
          <li><a [routerLink]="['/linkA']">Mis Compras</a></li>
          <li><a [routerLink]="['/linkB']">Mis Facturas</a></li>
          <li><a [routerLink]="['/linkC']">Mi Cuenta</a></li>
        </ul>
      </li>        

      <li>Other links</li>
      <li>Other links</li>
      <li>Other links</li>

    </ul>
  </div><!--/.nav-collapse -->

  </div><!--/.container-fluid -->
</nav>

我从 CDN 加载 bootstrap 3 并用这个 CSS 代码覆盖:

:host .nav.navbar-nav.navbar-right > li.dropdown.open,
      .nav.navbar-nav.navbar-right > li.dropdown.open > a,
      .nav.navbar-nav.navbar-right > li.dropdown.open > a:hover{
  color: yellow;
  background-color: rgba(61, 164, 65, 1);
  border-color: #999999;
}

我的问题是在应用“颜色:黄色”时,“背景颜色”被完全忽略了。

我检查了 chrome 中的计算 css,似乎它是正确的......但是有些东西覆盖了我的风格!

我必须如何重写引导程序以避免这种情况?

【问题讨论】:

  • 可以分享一下链接吗?
  • 网站链接?对不起,这是本地开发环境。
  • 你能在生成的同一个问题中添加相关代码吗?
  • 帖子中提供的代码会覆盖标准引导程序 3(由 CDN 加载)。顺便说一句,我正在开发一个 Angular 应用程序,因为 CSS 中的“:host”选择器。

标签: css twitter-bootstrap twitter-bootstrap-3


【解决方案1】:

刚刚在 css 中添加了父类以覆盖默认 css。

在下面的示例中,只有右侧导航栏被 css 覆盖。

.nav.navbar-nav.navbar-right > li.dropdown.open,
.nav.navbar-nav.navbar-right > li.dropdown.open > a,
.nav.navbar-nav.navbar-right > li.dropdown.open > a:hover{
  color: yellow;
  background: #3da441;
  border-color: #999999;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<nav class="navbar navbar-default">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
        <li><a href="#">Link</a></li>        
      </ul>
      
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
          </ul>
        </li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>

【讨论】:

  • 感谢您的回答。我只想覆盖 navbar-right 元素,所以这不是问题。我担心的是为什么“颜色”属性被覆盖但背景颜色没有。
  • 您只需用简单的background css 覆盖background-color,无需添加background-image css .... 更新了我的答案
  • 显然 background-image 包含在 bootstrap 3.3.7 中,这被强加在 background-color 上。
【解决方案2】:

我终于找到问题了!

这是因为背景图像(包含在引导程序中)强加了背景颜色。

我已修复将此代码添加到组件 css 文件中:

.navbar-default .navbar-nav > li > .dropdown-menu > li > a:hover,
.navbar-default .navbar-nav > li > .dropdown-menu > li > a:focus {
  background-color: rgba(61, 164, 65, 0.1);
  background-image: none;
}
.navbar-default .navbar-nav .open .dropdown-menu > .active > a,
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
  background-color: rgba(61, 164, 65, 0.1);
  background-image: none;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  background-color: rgba(61, 164, 65, 0.1);
  background-image: none;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
  background-color: rgba(61, 164, 65, 0.1);
  background-image: none;

【讨论】:

    猜你喜欢
    • 2013-09-26
    • 2015-11-13
    • 2021-12-23
    • 2015-09-01
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    相关资源
    最近更新 更多