J'essaie de créer un contrôle déroulant personnalisé et je dois masquer les flèches des contrôles natifs. J'utilise la variable CSS
suivante, qui fonctionne pour Chrome et Safari, mais pas dans Mozilla et IE.
select.desktopDropDown
{
appearance: none;
-moz-appearance:none; /* Firefox */
-webkit-appearance:none; /* Safari and Chrome */
}
Voici un [jsfiddle] [1].
Utilisez ceci cela fonctionnera mais avec IE10 + et pour FF:
Votre css devrait ressembler à ceci:
select.desktopDropDown::-ms-expand {
display: none;
}
En savoir plus sur ::ms-expand
.
Puis pour le reste:
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;
}
Note: J'ai codé en dur le chemin "../img/assets/arrow.png"
en arrière-plan.
Cela devrait fonctionner pour IE, Firefox et Opera.
Des exemples simples:
select::-ms-expand {
display: none;
}
select {
-moz-appearance: none;
appearance: none;
text-overflow: ''; /* this is important! */
}
Pour Fx, j'utilise -moz-appearance: checkbox-container
qui fonctionne bien.
Donc, mettre tout cela ensemble devrait vous suffire:
select.desktopDropDown {
appearance: none;
-webkit-appearance: none;
-moz-appearance: checkbox-container;
border-style: none;
}
select.desktopDropDown::-ms-expand {
display: none;
}
En fait, cette astuce est principalement requise pour IE10 + où les flèches sont dans le style Metro de Windows 8, même sous Windows 7. Bien que les utilisateurs de Windows 8 doivent être habitués au style, ils sont utilisés dans le système d'exploitation. Quoi qu'il en soit, je recommanderais au lieu d'utiliser:
display: none;
Utiliser:
visibility: hidden;
Parce que, du moins dans IE, le premier fait que la ligne bleue de l'élément sélectionné se superpose à la flèche de la liste déroulante lorsque la sélection est activée, alors que le dernier ne le fait pas.
nous pouvons créer une personnalisation en utilisant css. testé sur IE10, Mozilla et chrome borwser ...
Exemple de travail comme ci-dessous:
.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>