J'ai une boîte de sélection HTML que je dois styliser. Je préférerais utiliser uniquement CSS, mais si je le dois, j'utiliserai jQuery pour combler les lacunes.
Quelqu'un peut-il recommander un bon tutoriel ou plugin?
Je sais, Google, mais je cherche depuis deux heures et je ne trouve rien qui réponde à mes besoins.
Il doit être:
- Compatible avec jQuery 1.3.2
- Accessible
- Discret
- Entièrement personnalisable en termes de style de chaque aspect d'une boîte de sélection
Quelqu'un sait-il quelque chose qui répondra à mes besoins?
jquery
css
html-select
Apoorv Khurasia
la source
la source
select
éléments entre navigateurs. Mais si les gens sont prêts à vivre avec les différences, vous pouvez les styliser, y compris les frontières.Réponses:
J'ai vu des plugins jQuery qui convertissent
<select>
les s en<ol>
et<option>
les en<li>
, afin que vous puissiez le styliser avec CSS. Ça ne pourrait pas être trop difficile de rouler le vôtre.En voici un: https://gist.github.com/1139558 (Utilisé ici , mais il semble que le site est en panne.)
Utilisez-le comme ceci:
Style-le comme ceci:
la source
Mise à jour: Depuis 2013, les deux que j'ai vus qui méritent d'être vérifiés sont:
Ouais!
Depuis 2012, l'une des solutions les plus légères et flexibles que j'ai trouvées est ddSlick . Informations pertinentes (modifiées) du site:
select options
Et voici un aperçu des différents modes:
la source
Quant au CSS, Mozilla semble être le plus convivial, en particulier à partir de FF 3.5+. Les navigateurs Webkit font généralement leur propre travail et ignorent tout style. IE est très limité, même si IE8 vous permet au moins de définir la couleur / largeur de la bordure.
Ce qui suit est en fait assez joli dans FF 3.5+ (en choisissant votre préférence de couleur, bien sûr):
Mais en ce qui concerne IE, vous devez désactiver la couleur d'arrière-plan de l'option si vous ne voulez pas qu'elle s'affiche lorsque le menu d'options n'est pas déroulé. Et, comme je l'ai dit, Webkit fait sa propre chose.
la source
Nous avons trouvé un moyen simple et décent de le faire. C'est cross-browser, dégradable et ne casse pas un post de formulaire. Définissez d'abord l'opacité de la boîte de sélection sur 0.
c'est pour que vous puissiez toujours cliquer dessus
Ensuite, créez un div avec les mêmes dimensions que la boîte de sélection. Le div doit se trouver sous la boîte de sélection comme arrière-plan. Utilisez {position: absolute} et z-index pour y parvenir.
Mettez à jour le fichier innerHTML de la div avec javascript. Easypeasy avec jQuery:
C'est tout! Stylisez simplement votre div au lieu de la zone de sélection. Je n'ai pas testé le code ci-dessus, vous aurez donc probablement besoin de le modifier. Mais j'espère que vous comprenez l'essentiel.
Je pense que cette solution bat {-webkit-looks: none;}. Ce que les navigateurs devraient tout au plus faire est de dicter l'interaction avec les éléments du formulaire, mais certainement pas la façon dont ils s'affichent initialement sur la page car cela rompt la conception du site.
la source
Voici une petite fiche si vous voulez surtout
select
élémentoptions
, zindex approprié, etc.)ul
,li
générés marges bénéficiairesAlors jquery.yaselect.js pourrait être un meilleur ajustement . Simplement:
Et le balisage final est:
Découvrez-le sur github.com
la source
Vous pouvez styliser dans une certaine mesure avec CSS par lui-même
Mais cela dépend entièrement du navigateur. Certains navigateurs sont têtus.
Cependant, cela ne vous mènera pas loin et cela n'a pas toujours l'air très bien. Pour un contrôle complet, vous devrez remplacer une sélection via jQuery par un widget de votre choix qui émule la fonctionnalité d'une boîte de sélection. Assurez-vous que lorsque JS est désactivé, une boîte de sélection normale est à sa place. Cela permet à plus d'utilisateurs d'utiliser votre formulaire et facilite l'accessibilité.
la source
La plupart des navigateurs ne prennent pas en charge la personnalisation de la balise de sélection à l'aide de css. Mais je trouve ce javascript qui peut être utilisé pour styliser la balise select. Mais comme d'habitude, aucun support pour les navigateurs IE.
http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/ J'ai remarqué une erreur à ce sujet que l'attribut Onchange ne fonctionne pas
la source
Je viens de trouver ce qui semble vraiment bon.
http://www.dfc-e.com/metiers/multimedia/opensource/jqtransform/
la source
Si vous avez une solution sans jQuery. Un lien où vous pouvez voir un exemple de travail: http://www.letmaier.com/_selectbox/select_general_code.html (stylisé avec plus de CSS)
La section style de ma solution:
Maintenant, le code HTML à l'intérieur de la balise body:
la source
Mise à jour pour 2014: vous n'avez pas besoin de jQuery pour cela . Vous pouvez entièrement styliser une zone de sélection sans jQuery en utilisant StyleSelect . Par exemple, étant donné la boîte de sélection suivante:
L'exécution
styleSelect('select.demo')
créerait une boîte de sélection stylisée comme suit:la source
J'ai créé le plugin jQuery, SelectBoxIt , il y a quelques jours. Il essaie d'imiter le comportement d'une boîte de sélection HTML standard, mais vous permet également de styliser et d'animer la boîte de sélection à l'aide de jQueryUI. Jetez un œil et dites-moi ce que vous en pensez.
http://www.selectboxit.com
la source
Vous devriez essayer d'utiliser un plugin jQuery comme ikSelect .
J'ai essayé de le rendre très personnalisable mais facile à utiliser.
http://github.com/Igor10k/ikSelect
la source
Cela semble vieux mais voici un plugin très intéressant - http://uniformjs.com
la source
ceci sur les utilisations
twitter-bootstrap
styles pour activerselect
dans ledropdown
menu https://github.com/silviomoreto/bootstrap-selectla source
La solution simple consiste à déformer votre boîte de sélection à l'intérieur d'un div et à styliser le div correspondant à votre conception. Réglez l'opacité: 0 pour sélectionner la boîte, cela rendra la boîte de sélection invisible. Insérez une balise span avec jQuery et modifiez sa valeur dynamiquement si l'utilisateur change la valeur de la liste déroulante. Démonstration totale présentée dans ce didacticiel avec explication du code. J'espère que cela résoudra votre problème.
Le code JQuery ressemble à ceci.
la source