Tengo un menú desplegable simple y quiero que el ancho del submenú ocupe el espacio que necesita si los elementos del submenú son grandes o pequeños.

En este momento, se envuelve en una segunda línea .. Ver

https://jsfiddle.net/nyb44xbd/1/

Intenté ancho: auto; no funciona

Css:

.dropdown {
     position: relative;
    display: inline-block;
    margin:0 12px;
}

.dropdown-content {
    display: none;
    position: absolute;
    background:white;
    width:auto;

    padding: 12px 16px;
    z-index: 1;

}

.dropdown:hover .dropdown-content {
    display: block;
}

.subm{margin:12px 0;} 

MI HTML:

<div class="dropdown">
    <span>PRODUCT INFO</span>
    <div class="dropdown-content">
        <div class="subm"><a class="menulink" href="#ingredients">INGREDIENTS</a></div>
        <div class="subm"><a class="menulink subm" href="#ingredients">CUSTOMER REVIEWS</a></div>
        <div class="subm"><a class="menulink subm" href="#ingredients">NUTRITIONAL FACTS</a></div>
        <div class="subm"><a class="menulink subm" href="#ingredients">ORDER NOW</a></div>
    </div>
</div>

Gracias

0
user3011784 28 dic. 2016 a las 21:30

3 respuestas

La mejor respuesta

Puede colocar position:relative en el cuerpo y de esta manera el ancho puede variar.

https://jsfiddle.net/0huz4dam/

0
George Antonakos 28 dic. 2016 a las 18:34

Intente usar position: relative para .dropdown. Vea el fragmento a continuación:

.dropdown {
  position: relative;
  display: inline-block;
  margin: 0 12px;
}

.dropdown-content {
  display: none;
  position: relative;
  background: white;
  width: auto;
  padding: 12px 16px;
  z-index: 1;
}

.dropdown:hover .dropdown-content {
  display: block;
}

.subm {
  margin: 12px 0;
}
<div class="dropdown">
  <span>PRODUCT INFO</span>
  <div class="dropdown-content">
    <div class="subm"><a class="menulink" href="#ingredients">INGREDIENTS</a></div>
    <div class="subm"><a class="menulink subm" href="#ingredients">CUSTOMER REVIEWS</a></div>
    <div class="subm"><a class="menulink subm" href="#ingredients">NUTRITIONAL FACTS</a></div>
    <div class="subm"><a class="menulink subm" href="#ingredients">ORDER NOW</a></div>
  </div>
</div>
0
Kristijan Iliev 28 dic. 2016 a las 18:38

Simplemente elimine el position:absolute del estilo .dropdown-content, funcionará

.dropdown {
  position: relative;
  display: inline-block;
  margin: 0 12px;
}
.dropdown-content {
  display: none;
  background: white;
  padding: 12px 16px;
  z-index: 1;
}
.dropdown:hover .dropdown-content {
  display: block;
}
.subm {
  margin: 12px 0;
}
<div class="dropdown">
  <span>PRODUCT INFO</span>
  <div class="dropdown-content">
    <div class="subm"><a class="menulink" href="#ingredients">INGREDIENTS</a>
    </div>
    <div class="subm"><a class="menulink subm" href="#ingredients">CUSTOMER REVIEWS</a>
    </div>
    <div class="subm"><a class="menulink subm" href="#ingredients">NUTRITIONAL FACTS</a>
    </div>
    <div class="subm"><a class="menulink subm" href="#ingredients">ORDER NOW</a>
    </div>
  </div>
</div>
0
Gokul P P 28 dic. 2016 a las 18:52