La flecha desplegable en los cuadros de selección no se muestra

3 minutos de lectura

avatar de usuario
JA4677

Estoy usando un tema de wordpress y por alguna razón, el HTML select las cajas no tienen el área desplegable. Se ven como simples input cuadros de texto, aunque al hacer clic en ellos, puede ver la lista desplegable. No puedo encontrar qué código podría estar eliminando las flechas desplegables.

Esto es todo lo que veo en el CSS:

input:focus {
outline: none;
}

select,
input,
textarea {
-webkit-appearance: none;
-webkit-border-radius:0; 
border-radius:0; 
}

  • Si usa una herramienta de inspección, puede activar y desactivar los estilos aplicados al elemento y averiguar cuál es… Entonces, en Chrome, haga clic con el botón derecho en el elemento y seleccione “Inspeccionar elemento”.

    – Plummer

    14/07/2015 a las 20:57

  • Gracias. Sin embargo, no veo nada más relacionado con eso. ¿Hay una atribución para la flecha de selección? Me pregunto qué código debo buscar que controle la flecha de selección.

    – JA4677

    14/07/2015 a las 20:59

  • Deshacerse de webkit-appearance: none;

    – j08691

    14/07/2015 a las 21:00

  • Sólo tienes cuatro reglas allí. No se necesita mucho esfuerzo para descubrir que select { -webkit-appearance: none; } es la causa del problema. cambiarlo a select { -webkit-appearance: menu; } en cambio.

    – r3mainer

    14/07/2015 a las 21:04

  • En realidad, era el radio del borde del que necesitaba deshacerme, pero eso funcionó. ¡Gracias!

    – JA4677

    14/07/2015 a las 21:15

avatar de usuario
dippas

Aquí hay una selección básica

<select>
  <option>1</option>
  <option>2</option>
  <option>3</option>
</select>

Ahora veamos dónde está tu problema:

select {
  -webkit-appearance: none;
  /*webkit browsers */
  -moz-appearance: none;
  /*Firefox */
  appearance: none;
  /* modern browsers */
  border-radius: 0;

}
<select>
  <option>1</option>
  <option>2</option>
  <option>3</option>
</select>

Así que cuando estableces none a appearance está quitando la flecha, y cuando está configurando 0 a border-radiusestás eliminando el border por defecto de la select.

Puede restaurar la flecha configurando el appearence a menulist (el valor predeterminado), listbox o auto

NOTA Si ha ocultado la flecha en IE con esta regla select::-ms-expand { display: none; } para tener la flecha hacia atrás necesitarías configurarla display:block

  • menulist ah, gracias No pude encontrar cómo volver a agregarlo. una vez que la hoja de estilo css estaba fuera de mi control, establecí esta propiedad en ninguno, necesitaba una forma de restablecerla.

    – refresco italiano

    18 de febrero de 2016 a las 18:23

  • Gracias hermano, estaba tratando de averiguar cuál era el problema. Dios los bendiga

    – Desesperado

    6 de octubre de 2019 a las 9:10

Has anulado el -webkit-appearance propiedad para selectque se fijó como -webkit-appearance: menulist; como valor predeterminado por los navegadores.

avatar de usuario
vishal kumar

Sé que estoy respondiendo esto tarde, pero funcionó para mí y también puede ser útil para alguien. Solo pasa este CSS.

select{
-webkit-appearance: listbox !important
}

  • Considere hacer de esto un comentario o mejorar su respuesta. Lea stackoverflow.com/help/how-to-answer para obtener más información.

    – nurchi

    19 de noviembre de 2021 a las 16:40

avatar de usuario
Fran

La respuesta es correcta para la mayoría, pero no funcionó para mí. Esto hizo el truco

select::-ms-expand { display: block; }

avatar de usuario
Shubham Yadav

Puedes envolver el select en un div y sobre eso div puedes dar ::after elemento y estilo:

div:after{
    position: absolute;
    top: 4px;
    right: 10px;
    color: #768093;
    font-family: #whichever font you wanna use# e.g Fontawesome;
    font-size: 20px;
    content: "\e842";
}

div:after{ 
    position: absolute;
    visibility: visible;
    font-family: FontAwesome;
    content: "\f096";
    font-size: 18px;
}

avatar de usuario
samvel aleqsanyan

Probé las soluciones anteriores, pero no funcionaba para la interfaz de usuario, que se creó usando jquery.min.css. He intentado debajo de css y resolvió mi problema. Aquí estoy apuntando .ui-icon-carat-dque muestra la flecha desplegable y la configuración del icono desplegable allí:

.ui-icon-carat-d:after{
    background: url("https://cdn1.iconfinder.com/data/icons/pixel-perfect-at-16px-volume-2/16/5001-128.png") 95% 32% !important;
    background-repeat: no-repeat !important;
    background-color: #fff !important;
}

avatar de usuario
matthias_h

Yo también estaba teniendo el mismo problema, obtuve la flecha desplegable después de agregar el siguiente archivo jquery jquery-3.4.1.js

<script type="text/javascript" src="https://stackoverflow.com/questions/31417160/~/Scripts/jquery-3.4.1.js">

¿Ha sido útil esta solución?