w3schools pointer moz css internet-explorer custom-controls mozilla

css - pointer - IE y Firefox: el menú desplegable personalizado no puede eliminar las flechas nativas



pointer events css w3schools (5)

Estoy intentando crear un control desplegable personalizado y necesito ocultar las flechas de los controles nativos. Estoy usando el siguiente CSS , que funciona para Chrome y Safari, pero no en Mozilla e IE.

select.desktopDropDown { appearance: none; -moz-appearance:none; /* Firefox */ -webkit-appearance:none; /* Safari and Chrome */ }

Aquí hay un [jsfiddle] [1].


De hecho, este truco se requiere principalmente para IE10 + donde las flechas están en el estilo Metro de Windows 8, incluso en Windows 7. Aunque los usuarios de Windows 8 deben usarse para el estilo porque se usa a través del sistema operativo. De todos modos, lo recomendaría en lugar de usar:

display: none;

Usar:

visibility: hidden;

Porque, al menos en IE, el primero hace que la línea azul del elemento seleccionado se superponga a la flecha desplegable cuando se selecciona la selección, mientras que la segunda no.


Ejemplos de Bare-bones:

Para IE:

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

Para Firefox:

select { -moz-appearance: none; appearance: none; text-overflow: ''''; /* this is important! */ }


Para Fx uso -moz-appearance: checkbox-container que funciona bien.

Así que poner todo junto lo siguiente debería ser suficiente para usted:

select.desktopDropDown { appearance: none; -webkit-appearance: none; -moz-appearance: checkbox-container; border-style: none; } select.desktopDropDown::-ms-expand { display: none; }


Use esto, funcionará pero con IE10 + y para FF:

Tu css debería verse así:

select.desktopDropDown::-ms-expand { display: none; }

Más sobre ::ms-expand .

Luego por el resto:

select.desktopDropDown { outline : none; overflow : hidden; text-indent : 0.01px; text-overflow : ''''; background : url("../img/assets/arrow.png") no-repeat right #666; -webkit-appearance: none; -moz-appearance: none; -ms-appearance: none; -o-appearance: none; appearance: none; }

Nota : "../img/assets/arrow.png" ruta "../img/assets/arrow.png" como fondo.

Esto debería funcionar bien para ti en IE, Firefox y Opera.


podemos crear personalizado usando css. probado en IE10, Mozilla y Chrome borwser ...
Ejemplo de trabajo de la siguiente manera:

.customSelect { position: relative; } /* IE11 hide hacks*/ select::-ms-expand { display: none; } .customSelect:after { content: ''<>''; font: 17px "Consolas", monospace; color: #333; -webkit-transform: rotate(90deg); -moz-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); right: 11px; /*Adjust for position however you want*/ top: 18px; padding: 0 0 2px; border-bottom: 1px solid #999; /*left line */ position: absolute; pointer-events: none; } .customSelect select { -webkit-appearance: none; -moz-appearance: none; appearance: none; /* Add some styling */ display: block; width: 100%; height: 50px; float: none; margin: 5px 0px; padding: 0px 24px; font-size: 16px; line-height: 1.75; color: #333; background-color: #ffffff; background-image: none; border: 1px solid #cccccc; -ms-word-break: normal; word-break: normal; }

<div class="customSelect"> <label> <select> <option selected> Select Box </option> <option>Option 1</option> <option>Option 2</option> <option>Last long option</option> </select> </label> </div>