Table des matières
1. Style CSS de base (amical simple et transversal)
2. Dropdown entièrement personnalisé à l'aide de JavaScript et Divs
3. Utilisez un cadre ou une bibliothèque CSS
Conseils clés
Maison interface Web tutoriel HTML Comment styliser une liste déroulante sélectionnée dans HTML

Comment styliser une liste déroulante sélectionnée dans HTML

Aug 22, 2025 am 11:34 AM

Utilisez des CS de base pour ajouter des polices, des bordures, des coins arrondis et des flèches personnalisées à compatibles, mais certains navigateurs conservent toujours des styles natifs; 2. Si vous avez besoin d'avoir un contrôle total du style, vous pouvez utiliser JavaScript et Div pour créer des menus déroulants personnalisés pour obtenir un contenu riche tel que les animations et les icônes; 3. Il est recommandé d'utiliser des bibliothèques telles que Select2, Choices.js ou React Select pour obtenir rapidement des boîtes déroulantes belles et accessibles; 4. Dans tous les cas, vous devez vous assurer de prendre en charge la navigation au clavier, les propriétés ARIA et une bonne expérience dans les appareils mobiles pour prendre en compte la convivialité et la conception.

Comment styliser une liste déroulante sélectionnée dans HTML

Le style d'une liste déroulante <select></select> dans HTML peut être délicat car les éléments de forme native sont rendus différemment d'un navigateur et des systèmes d'exploitation. Bien que vous puissiez appliquer le CSS de base pour changer les couleurs, les polices et le rembourrage, la personnalisation complète (comme changer l'icône de la flèche ou l'ajout de bordures personnalisées) nécessite des solutions de contournement. Voici comment l'aborder efficacement.

Comment styliser une liste déroulante sélectionnée dans HTML

1. Style CSS de base (amical simple et transversal)

Vous pouvez styliser un élément <select></select> avec CSS standard. Cela fonctionne bien dans la plupart des cas et maintient l'accessibilité et les fonctionnalités.

 <sélectionnez class = "personnalisé-select">
  <Option Value = "Option1"> Option 1 </ Option>
  <Option Value = "Option2"> Option 2 </ Option>
  <Option Value = "Option3"> Option 3 </ Option>
</lect>
 .Custom-Select {
  taille de police: 16px;
  rembourrage: 10px;
  Border: 2px solide #ccc;
  Border-Radius: 8px;
  Color d&#39;arrière-plan: blanc;
  Couleur: # 333;
  Largeur: 200px;
  Apparence: aucun; / * Supprime le style par défaut * /
  -Webkit-apparence: aucun;
  -Moz-apparence: aucun;
  Position: relative;
  Background-Image: URL (&#39;data: image / svg xml; utf8, <svg fill = "# 333" xmlns = "http://www.w3.org/2000/svg" Viewbox = "0 0 10 6"> <path d = "m1 1l4 4 4-4" /> </vg>&#39;);
  République de fond: sans répétition;
  Position d&#39;arrière-plan: centre 10px droit;
  taille arrière: 12px;
  padding-droite: 30px;
}
  • appearance: none supprime le style spécifique au système d'exploitation par défaut.
  • Utilisez une image d'arrière-plan (SVG en ligne est pratique) pour remplacer la flèche déroulante par défaut.
  • Ajoutez un rembourrage pour faire de la place pour la flèche personnalisée.

Remarque: Même avec appearance: none , certains navigateurs (en particulier le safari mobile) montrent toujours des commandes natives. Pour un contrôle complet, vous aurez besoin d'une solution personnalisée.

Comment styliser une liste déroulante sélectionnée dans HTML

Si vous avez besoin d'un contrôle de conception parfait (par exemple, des options personnalisées, des animations, des icônes), remplacez le natif <select> par une liste déroulante personnalisée construite à partir de div S et JavaScript.

 <div class = "Custom-dropdown">
  <div class = "dropdown-header" id = "dropdown-toggle"> sélectionnez une option </div>
  <ul class = "dropdown-options" id = "dropdown-options" style = "affiche: aucun;">
    <li data-valeur = "1"> Option 1 </li>
    <li data-vale = "2"> Option 2 </li>
    <li data-vale = "3"> Option 3 </li>
  </ul>
</div>
 .Custom-dropdown {
  Position: relative;
  Largeur: 200px;
  Font-Family: Arial, Sans-Serif;
}

.Dropdown-header {
  rembourrage: 10px;
  Border: 2px solide # 007BFF;
  Border-Radius: 8px;
  Color d&#39;arrière-plan: blanc;
  curseur: pointeur;
  Texte-aligne: gauche;
}

.dropdown-options {
  Style de liste: aucun;
  marge: 0;
  rembourrage: 0;
  Border: 1px solide #ddd;
  Border-top: Aucun;
  Border-Radius: 0 0 8px 8px;
  Contexte: blanc;
  Position: absolue;
  Largeur: 100%;
  Z-Index: 1000;
  max-height: 200px;
  débordement-y: auto;
}

.dropdown-options li {
  rembourrage: 10px;
  curseur: pointeur;
}

.Dropdown-Options li: Hover {
  Color d&#39;arrière-plan: # F0F0F0;
}
 const toggle = document.getElementById («Dropdown-toggle»);
const Options = document.getElementById («Dropdown-options»);
const alloptions = options.QuerySelectorAll (&#39;li&#39;);

toggle.addeventListener (&#39;click&#39;, () => {
  const isVisible = options.style.display === &#39;Block&#39;;
  options.style.display = est Visible? «Aucun»: «bloc»;
});

alloptions.ForEach (option => {
  option.addeventListener (&#39;click&#39;, () => {
    toggle.textContent = option.TextContent;
    options.style.display = &#39;Aucun&#39;;
    // déclenchent éventuellement un événement de modification ou mettez à jour une entrée masquée
  });
});

// fermer la liste déroulante lorsque vous cliquez à l&#39;extérieur
document.addeventListener (&#39;click&#39;, (e) => {
  if (! e.target.closest (&#39;. Custom-dropdown&#39;)) {
    options.style.display = &#39;Aucun&#39;;
  }
});

Cette méthode vous donne un contrôle visuel complet et permet un contenu riche (images, icônes, etc.) dans les options.

Comment styliser une liste déroulante sélectionnée dans HTML

3. Utilisez un cadre ou une bibliothèque CSS

Pour un développement plus rapide, envisagez d'utiliser des bibliothèques qui gèrent la compatibilité et l'accessibilité des navigateurs:

  • SELECT2 - basé sur JQuery, hautement personnalisé.
  • Choices.js - léger, moderne, pas de dépendances.
  • React Select - Si vous utilisez React.
  • Tailwind CSS - Utilisez avec des composants personnalisés pour le style utilitaire d'abord.

Exemple avec Choices.js :

 <script src = "https://cdn.jsdelivr.net/npm/choices.js/public/assets/scripts/choices.min.js"> </ script>
<link rel = "Stylesheet" href = "https://cdn.jsdelivr.net/npm/choices.js/public/assets/styles/choices.min.css">

<select id = "Choices-Select">
  <Option Value = "1"> Apple </ Option>
  <Option Value = "2"> Banana </ Option>
  <Option Value = "3"> Orange </opoption>
</lect>

<cript>
  Nouveaux choix (&#39;# Choices-Select&#39;, {
    SearchAnabled: False,
    itemSelectText: &#39;&#39;,
  });
</cript>

Ces bibliothèques gèrent la navigation du clavier, l'accessibilité (ARIA) et le style de manière cohérente.


Conseils clés

  • Considérez toujours l'accessibilité : les lecteurs d'écran s'appuient sur les éléments natifs <select></select> .
  • Si vous utilisez une liste déroulante personnalisée, ajoutez des rôles Aria ( role="listbox" , aria-selected , etc.) et prends en charge la navigation par clavier (touches Arrow, Entrée).
  • Tester sur mobile - Sélectionne les natifs déclenchent souvent le sélecteur intégré de l'appareil, ce qui est généralement meilleur pour UX.
  • Évitez de sur-style au point de briser la convivialité.

Fondamentalement, vous pouvez faire un style léger avec CSS, mais pour un contrôle complet, allez personnaliser ou utiliser une bibliothèque éprouvée. C'est un équilibre entre les besoins de conception et la convivialité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Conseils CSS: Masquer précisément le contenu texte spécifique sans affecter les éléments parentaux Conseils CSS: Masquer précisément le contenu texte spécifique sans affecter les éléments parentaux Sep 16, 2025 pm 10:54 PM

Ce tutoriel détaille comment utiliser CSS pour masquer avec précision le contenu de texte spécifique dans les pages HTML pour éviter que le problème de l'ensemble de l'élément parent soit caché en raison de sélecteurs inappropriés. En ajoutant des classes CSS exclusives aux éléments d'emballage du texte cible et en utilisant l'affichage: aucun; Attribut, les développeurs peuvent obtenir un contrôle raffiné des éléments de page, en veillant à ce que seules les pièces requises soient masquées, optimisant ainsi la mise en page et l'expérience utilisateur.

Comment créer un hyperlien vers une adresse e-mail dans HTML? Comment créer un hyperlien vers une adresse e-mail dans HTML? Sep 16, 2025 am 02:24 AM

Usemailto: inhreftocreateeemaillinks.startwithforbasiclinks, ajouter? Sujet = & body = forpre-fillutContent, andincludemultipleaddressorcc =, bcc = foradvancedOptions.

Capturez les événements de Mousedown avec l'élément parent contenant des iframes interdomains: principes et limitations Capturez les événements de Mousedown avec l'élément parent contenant des iframes interdomains: principes et limitations Sep 20, 2025 pm 11:00 PM

Cet article explore le défi de capturer des événements de Mousedown sur des divs parents contenant des iframes interdomains. Le problème de base est que les politiques de sécurité du navigateur (politique d'origine même) empêchent l'écoute d'événements DOM directe sur le contenu IFRAME inter-domaine. Ce type de capture d'événements ne peut pas être réalisé à moins que le nom de domaine source IFRAME soit contrôlé et que COR soit configuré. L'article expliquera ces mécanismes de sécurité en détail et leurs limites aux interactions des événements et fourniront des alternatives possibles.

JavaScript Fonction externe Call Difficulté Analyse: Emplacement du script et spécification de dénomination JavaScript Fonction externe Call Difficulté Analyse: Emplacement du script et spécification de dénomination Sep 20, 2025 pm 10:09 PM

Cet article explore deux problèmes courants lors de l'appel des fonctions JavaScript externes dans HTML: un temps de chargement de script incorrect ne fait pas partie des éléments DOM, et la dénomination des fonctions peut entrer en conflit avec les événements ou les mots clés intégrés du navigateur. L'article fournit des solutions détaillées, y compris les emplacements de référence de script de peaufinage et les spécifications de dénomination des bonnes fonctions pour s'assurer que le code JavaScript est correctement exécuté.

Comment ajouter une info-bulle sur Hover en HTML? Comment ajouter une info-bulle sur Hover en HTML? Sep 18, 2025 am 01:16 AM

Usethetitleattributeforsimpletooltipsorcssforcustom-styledones.1.addtitle = "text" toanyelementfordtooltips.2.ForStyledToolTips, wraptheelementInacontainer, use.tooltipand.tooltiptextclasseswithcspositioning, pseudo-elelights, et vissibilitycccc

Comment faire du texte enroulé autour d'une image en HTML? Comment faire du texte enroulé autour d'une image en HTML? Sep 21, 2025 am 04:02 AM

USECSSFLOATPROPERTYTOWRAPTextArnanImage: FloatleftFortExtontheRight, FloatRightFortExtontheLeft, AddmarginForspacing, etClearFloatStopReventLayEtLaySues.

Comment définir l'attribut Lang dans HTML Comment définir l'attribut Lang dans HTML Sep 21, 2025 am 02:34 AM

SetThelangAttributeInthehtmltagtospecifypagelanguage, par exemple, français; 2. usocodes comme "ES" ForSpanishor "FR" Forfrench;.

Implémentation de l'empilement vertical des éléments dans la disposition du flexion bootstrap: du côté à la couche Implémentation de l'empilement vertical des éléments dans la disposition du flexion bootstrap: du côté à la couche Sep 21, 2025 pm 10:42 PM

Lorsque vous utilisez Bootstrap pour la mise en page de la page Web, les développeurs rencontrent souvent le problème des éléments affichés côte à côte plutôt que d'empiler verticalement par défaut, en particulier lorsque le conteneur parent applique la disposition Flexbox. Cet article explorera ce défi de mise en page commun en profondeur et fournira une solution: en ajustant l'attribut de direction flexible du conteneur Flex à la colonne, en utilisant la classe d'outils Flex-Colonne de Bootstrap pour obtenir la disposition verticale correcte des balises H1 et des blocs de contenu tels que les formulaires, garantissant que la structure de page répond aux attentes.

See all articles