64 votes

Masquer la barre de défilement verticale dans l'élément <select>.

Bonjour, j'ai une boîte de sélection avec plusieurs choix et j'ai besoin de cacher la barre de défilement verticale, est-ce possible ?

<select name="sCat" multiple="true">
<!-- My Option Here -->
</select>

D'accord, mais comment puis-je obtenir un effet où je peux sélectionner un élément de la liste qui a un ID et ensuite utiliser jQuery pour gérer ces fonctions id.click ? Quel élément dois-je utiliser alors ?

0 votes

Pas à ma connaissance. Vous devrez créer un "contrôle" vous-même (c'est-à-dire simuler l'effet en utilisant un div et un bouton avec un événement de clic ou autre [sans parler des raccourcis clavier]).

0 votes

"Ok, mais comment puis-je obtenir un effet où je peux sélectionner un élément de la liste qui a un ID et ensuite utiliser jQuery pour gérer ces fonctions id.click ? Quel élément dois-je utiliser alors ?" Une balise option n'a pas d'ID non plus. Je pense que vous voulez dire un attribut dans lequel vous stockez l'ID. Si c'est le cas, vous pouvez utiliser n'importe quelle balise qui supporte un attribut pour y placer la valeur : radio, checkbox, bouton. En théorie, même une zone de texte.

73voto

Arraxas Points 661

C'est ici que nous apprécions toute la puissance de CSS3 :

.bloc {
  display: inline-block;
  vertical-align: top;
  overflow: hidden;
  border: solid grey 1px;
}

.bloc select {
  padding: 10px;
  margin: -5px -20px -5px -5px;
}

<div class="bloc">
  <select name="year" size="5">
    <option value="2010">2010</option>
    <option value="2011">2011</option>
    <option value="2012" SELECTED>2012</option>
    <option value="2013">2013</option>
    <option value="2014">2014</option>
  </select>
</div>

Violon

1 votes

Il est préférable d'utiliser le terme "clip" plutôt que "marge".

1 votes

Sympa, mais une petite amélioration serait d'utiliser un span au lieu d'un div, juste au cas où le navigateur ne supporte pas l'inline-block (oui, je dois parler d'un bébé non doué de Microsoft).

38 votes

This is where we appreciate all the power of CSS3 . Quelqu'un pourrait-il me dire où se trouve le CSS3 ici ?

22voto

Guffa Points 308133

Non, vous ne pouvez pas contrôler l'aspect d'une boîte de sélection de manière aussi détaillée.

Une boîte de sélection est généralement affichée sous forme de liste déroulante, mais rien ne dit qu'elle doit toujours être affichée de cette façon. La manière dont elle est affichée dépend du système. Sur certains téléphones mobiles, par exemple, vous n'obtenez pas de liste déroulante, mais un sélecteur qui couvre la majeure partie ou la totalité de l'écran.

Si vous souhaitez contrôler l'apparence de vos éléments de formulaire de manière aussi détaillée, vous devez créer vos propres contrôles de formulaire à partir d'éléments HTML ordinaires (ou trouver quelqu'un d'autre qui l'a déjà fait).

0 votes

D'accord, mais comment puis-je obtenir un effet où je peux sélectionner un élément de la liste qui a un ID et ensuite utiliser jQuery pour gérer ces fonctions id.click ? Quel élément dois-je utiliser alors ?

0 votes

Pourquoi le downvote ? Si vous n'expliquez pas ce que vous pensez qui est faux, cela ne peut pas améliorer la réponse.

3voto

Derek 朕會功夫 Points 23487

Vous pouvez utiliser un <div> pour couvrir la barre de défilement si vous voulez vraiment qu'elle disparaisse.
Bien que cela ne fonctionne pas avec IE6, les navigateurs modernes vous permettent de mettre une balise de type <div> sur le dessus.

0voto

BoffinbraiN Points 1854

Comme l'a dit Guffa, il n'est pas possible d'obtenir un tel contrôle avec les contrôles natifs. La meilleure solution est probablement de créer une boîte d'éléments avec des boutons radio à côté de chaque élément, puis d'utiliser des étiquettes et du JavaScript pour rendre les "rangées" interactives, de sorte qu'un clic sur un bouton radio ou une étiquette colorera la rangée sélectionnée.

-1voto

Sebastjan Points 178

Je pense que vous ne pouvez pas. L'élément SELECT est rendu à un point hors de portée des CSS et du HTML. Est-il grisé ?

Mais vous pouvez essayer d'ajouter un atribut "taille".

0 votes

D'accord, mais comment puis-je obtenir un effet où je peux sélectionner un élément de la liste qui a un ID et ensuite utiliser jQuery pour gérer ces fonctions id.click ? Quel élément dois-je utiliser alors ?

0 votes

L'ajout de l'attribut "size" fait toujours apparaître la barre de défilement verticale fantôme.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X