Cómo cambiar el color de fondo de la opción desplegable bootstrap abierta. Aquí está el código:

<nav class="navbar navbar-toggleable-sm navbar-inverse bg-faded">
  <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbar6">
        <span class="navbar-toggler-icon"></span>
    </button>
  <a href="#" class="navbar-brand">Title </a>
  <div class="navbar-collapse collapse justify-content-stretch" id="navbar6">
    <ul class="navbar-nav ml-auto">
      <li class="nav-item">
        <a class="nav-link" href="#">About<span class="sr-only">Home</span></a>
      </li>
      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          Services
        </a>
        <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
          <a class="dropdown-item" href="#">Design</a>
          <a class="dropdown-item" href="#">Development</a>
          <a class="dropdown-item" href="#">Consulting</a>
        </div>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Contact</a>
      </li>
    </ul>
  </div>
</nav>

En Bootstrap 3 lo cambié con la ayuda de:

.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:focus,
.navbar-default .navbar-nav > .open > a:hover {
  background: #080808;
}

Era un código estándar de bootstrap 3 (no funciona en bootstrap 4) ¿Cómo hago lo mismo solo en Bootstrap 4?

1
Pavel Fedorov 5 mar. 2017 a las 06:36

2 respuestas

La mejor respuesta
.navbar .dropdown-menu {
  background-color: #BADA55;
}

/* and this styles the dropdwon trigger link, when open */
.navbar .dropdown.show a { 
  background-color: #BADA55;
}

...es suficiente.

Tenga en cuenta que .navbar lo limita al menú y, sin él, daría estilo a todos los .dropdown s, siempre que cargue su CSS después de bootstrap(.min).css.

.navbar .dropdown-menu {
  background-color: #BADA55;
}
.navbar .dropdown.show a {
  background-color: #BADA55;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"></script>

<nav class="navbar navbar-toggleable-sm navbar-light bg-faded">
  <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
  <a class="navbar-brand" href="#">Title</a>

  <div class="collapse navbar-collapse justify-content-stretch" id="navbarSupportedContent">
    <ul class="navbar-nav ml-auto">
      <li class="nav-item active">
        <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" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
      Services
    </a>
    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
      <a class="dropdown-item" href="#">Design</a>
      <a class="dropdown-item" href="#">Development</a>
      <a class="dropdown-item" href="#">Consulting</a>
    </div>
  </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="#">Disabled</a>
      </li>
    </ul>
    <form class="form-inline my-2 my-lg-0">
      <input class="form-control mr-sm-2" type="text" placeholder="Search">
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
    </form>
  </div>
</nav>

Tenga en cuenta que ninguno de sus selectores actuales coincide con nada, ya que no parece haber aplicado la clase navbar-default a ningún elemento.

Como regla general, espere que los nombres de clase muy se hayan refactorizado en v4, lo que permite una sintaxis más corta, más expresiva y una mayor flexibilidad general.
La aplicación de soluciones v3 a ejemplos v4 generalmente se considera una mala práctica, al igual que esperar que las soluciones v2 funcionen en ejemplos v3.

2
tao 5 mar. 2017 a las 19:13

Esto funciona para Bootstrap 4.1.3:

.dropdown-menu {
    background-color: #ff0000;
}
1
Robert Stevens 14 sep. 2018 a las 21:48