Je suis un développeur backend, frontend d'apprentissage, nouveau dans CSS.
Sur un projet, vous devez définir un CSS par défaut pour la balise select
. Toutefois, lorsque vous cliquez sur cette balise, la couleur de la bordure devient bleue au lieu de vert et la couleur du texte au noir à partir du vert. J'ai essayé de trouver CSS implémentant au clic mais pas d'utilisation. Tout ce qui est visible sur l'élément inspect est qu'un événement est actif sur select
. J'ai essayé d'ajouter mon propre événement au clic et de changer le CSS, mais je ne pouvais pas l'atteindre.
CSS:
.customSelect {
border-radius: 1.25rem;
height: calc(5.25rem + 2px);
font-size: 3rem;
color: #00a082;
border: 3px solid #cbece5;
}
J'ai essayé d'ajouter la même classe à l'événement click personnalisé, mais quelque chose d'autre remplace mon CSS.
JS:
$("#selectId").click( () => {
$("#selectId").addClass('customSelect');
});
Comment ajouter du CSS personnalisé à la balise select
et à son menu déroulant option
?
EDIT Pourquoi pas un duplicata pour comment-style-l'option-de-un-html-select
Ma question n’est pas de styliser la balise option
, mais d’empêcher ma boîte select
de changer la couleur de la bordure en bleu, comme lorsque nous cliquions sur select
ou dans la balise input
et que, par défaut, ces modifications passaient au bleu. Comme commentaire, titre de la question, corps de la question et zone de réponse, la couleur de la bordure devient bleue lorsque vous cliquez dessus. Je ne veux pas que cela se produise.
Deviner. Cette couleur bleue et cliquez sur entrée , sélection et textarea tag est due à bootstrap CSS. Suppression de la classe form-control
de select et ajout de la classe suivante. Tout fonctionne bien maintenant.
CSS:
/* Customized Select Box */
.customSelect {
background-color: #fff;
background-clip: padding-box;
border: 0.5rem solid #cbece5;
border-radius: 1.25rem;
color: #00a082;
display: block;
font-size: 2rem;
height: 3.5rem;
line-height: 1.5;
padding: 0.25rem 0.75rem;
width: 100%;
transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
transition-property: border-color, box-shadow;
transition-duration: 0.15s, 0.15s;
transition-timing-function: ease-in-out, ease-in-out;
transition-delay: 0s, 0s;
}
Vous pouvez utiliser une pseudo classe CSS pour affecter différentes valeurs à un élément.
Dans votre cas, vous pouvez utiliser:
.customSelect:hover
pour attribuer des styles en survolant avec la souris.
.customSelect:active
pour attribuer des styles après avoir cliqué sur quelque chose.
.customSelect:focus
pour attribuer des styles aux éléments ciblés par le clavier ou activés par la souris.
Ce serait un style séparé du .customSelect
original comme ceci:
.customSelect {
border-radius: 1.25rem;
height: calc(5.25rem + 2px);
font-size: 3rem;
color: #00a082;
border: 3px solid #cbece5;
}
.customSelect:hover {
new-styles: new value;
}
Vous pouvez également les chaîner ensemble:
.customSelect:hover, .customSelect:active {
style-to-apply-to-both: value;
}
En savoir plus sur les sélecteurs ici: https://www.w3schools.com/cssref/sel_hover.asp
Vous devrez peut-être en créer un vous-même, car accéder aux éléments individuels de l'élément select est compliqué. J'espère que quelqu'un pourra fournir une meilleure réponse, mais dans le cas contraire: W3 Schools dispose d'une méthode documentée assez lourde.
https://www.w3schools.com/howto/howto_custom_select.asp
(Désolé pour le lien; édité)