C'est difficile à faire entre les navigateurs. Roger Johansson a étudié cette question de manière assez approfondie.
Cristian Libardo
Lire tous les commentaires - il existe un moyen très simple de le faire sans impliquer CSS: <input type = "checkbox" name = "checkboxName" value = "on" style = "width: 110%; height: 110%">
C'est un peu moche (en raison de l'extension), mais cela fonctionne sur la plupart des navigateurs les plus récents:
input[type=checkbox]{/* Double-sized Checkboxes */-ms-transform: scale(2);/* IE */-moz-transform: scale(2);/* FF */-webkit-transform: scale(2);/* Safari and Chrome */-o-transform: scale(2);/* Opera */transform: scale(2);padding:10px;}/* Might want to wrap a span around your checkbox text */.checkboxtext
{/* Checkbox text */font-size:110%;display: inline;}
<inputtype="checkbox"name="optiona"id="opta"checked/><spanclass="checkboxtext">
Option A
</span><inputtype="checkbox"name="optionb"id="optb"/><spanclass="checkboxtext">
Option B
</span><inputtype="checkbox"name="optionc"id="optc"/><spanclass="checkboxtext">
Option C
</span>
cela semble être la bonne réponse car celle marquée comme réponse n'offre pas de solutions dans de nombreux cas (pas de solution à firefox sur xp? pas de chrome du tout?), est obsolète et ne contient qu'un lien et un commentaire de peu de valeur.
nurettin
4
@jdw +1 pour cette réponse et même j'ai eu le besoin de le faire et votre réponse a été utile. Mais d'une manière ou d'une autre, je trouve que la case à cocher «mise à l'échelle» apparaît un peu déformée. Je ne sais pas si c'est une chose avec FF ou mon OS (Ubuntu 12.04). Merci quand même :)
itsols
1
l'échelle () a besoin de 2 paramètres pour le chrome, FF et IE je pense. Donc, si vous changez simplement toutes les échelles en échelle (2,2), cela devrait fonctionner avec tous les navigateurs.
Onur Topal
10
ajouter transform: scale(2);aussi, pour assurer plus pour n'importe quel navigateur
Adriano Resende
8
la mise à l'échelle est impressionnante, à l'échelle 2, vous voyez déjà les pixels individuels. Je ne choisirais jamais cette solution pour de belles grosses cases à cocher CSS.
basZero
369
Solution de travail pour tous les navigateurs modernes.
Est-ce que cela couvre les navigateurs plus anciens comme ie 8?
Huangisme
1
@Huangism Non, le code ci-dessus n'aura aucun effet dans IE 8 qui ne prend pas en charge la transformpropriété. IE 9 prend en charge -ms-transformque vous pourriez utiliser, mais certains disent qu'il est assez pixélisé, il serait donc préférable de laisser IE 9 avec la valeur par défaut.
Simon East
L'approche ci-dessus n'est pas mauvaise, car il y a une limite d'échelle car elle provoque la pixelisation de la case à cocher.
C'est plutôt intéressant que Mozilla le décourage alors que Firefox est presque le seul navigateur qui ne le supporte pas: caniuse.com/#feat=css-zoom
ndreisg
47
Version 2020 - utilisant des pseudo-éléments, la taille dépend de la taille de la police.
La case à cocher / radio par défaut est rendue en dehors de l'écran, mais CSS crée des éléments virtuels très similaires aux éléments par défaut. Prend en charge tous les navigateurs, pas de flou. La taille dépend de la taille de la police. Les actions du clavier (espace, tabulations) sont également prises en charge.
Bien sûr, grâce à cela, vous pouvez changer la valeur de contentselon vos besoins et utiliser une image si vous le souhaitez ou utiliser une autre police ...
Le principal intérêt ici est que:
La taille de la case à cocher reste proportionnelle à la taille du texte
Vous pouvez contrôler l'aspect, la couleur, la taille de la case à cocher
Pas besoin de HTML supplémentaire!
Seulement 3 lignes de CSS nécessaires (la dernière est juste pour vous donner des idées)
Modifier : Comme indiqué dans le commentaire, la case à cocher ne sera pas accessible par la navigation des touches. Vous devriez probablement ajouter tabindex=0une propriété à votre étiquette pour la rendre focalisable.
@robertjd a accepté, était confus quant à la raison pour laquelle cela serait nécessaire pour une simple transformation
Neil Chowdhury
@robertjd Ce ne sont même pas des cases à cocher; ils basculent.
TylerH
14
L'apparence des cases à cocher semble être corrigée par défaut. Mais comme l'a souligné Worthy7, cela peut être résolu en utilisant la propriété CSSappearance . Cela rendra les cases à cocher complètement vides, afin que vous puissiez définir votre propre apparence. Ce qui est bien à ce sujet: vous pouvez utiliser votre code HTML existant. Inconvénient: c'est une technologie expérimentale . Edge et IE n'utilisent pas le style personnalisé.
Je cherchais à faire une case à cocher qui était juste un peu plus grande et j'ai regardé le code source de 37Signals Basecamp pour trouver la solution suivante-
Vous pouvez modifier la taille de la police pour agrandir légèrement la case à cocher:
font-size: x-large;
Ensuite, vous pouvez aligner correctement la case à cocher en procédant comme suit:
vertical-align: top;
margin-top:3px;/* change to center it */
la taille de la police ne semble pas du tout affecter la taille de la case à cocher réelle
Michael
N'a pas fonctionné pour moi
Amirhossein Tarmast
6
Vous pouvez agrandir les cases à cocher dans Safari - qui résiste généralement aux approches habituelles - avec cet attribut: -webkit-transform: scale(1.3, 1.3);
Je pense que la solution la plus simple consiste à remodeler la case à cocher comme certains utilisateurs le suggèrent. Le CSS ci-dessous fonctionne pour moi, ne nécessite que quelques lignes de CSS et répond à la question OP:
Comme mentionné dans cet article, la propriété zoom ne semble pas fonctionner sur Firefox et les transformations peuvent provoquer des effets indésirables.
Testé sur Chrome et Firefox, devrait fonctionner pour tous les navigateurs modernes. Modifiez simplement les propriétés (couleurs, taille, bas, gauche, etc.) selon vos besoins. J'espère que cela aide!
Ma compréhension est que ce n'est pas facile du tout de faire un navigateur croisé. Au lieu d'essayer de manipuler le contrôle de case à cocher, vous pouvez toujours créer votre propre implémentation à l'aide d'images, de javascript et de champs de saisie masqués. Je suppose que cela est similaire à ce que niceforms est (d'après la réponse de Staicu lonut ci-dessus), mais ne serait pas particulièrement difficile à mettre en œuvre. Je crois que jQuery a un plugin pour permettre également ce comportement personnalisé (recherchera le lien et publiera ici si je peux le trouver).
style=
tag est CSS ...Réponses:
C'est un peu moche (en raison de l'extension), mais cela fonctionne sur la plupart des navigateurs les plus récents:
la source
transform: scale(2);
aussi, pour assurer plus pour n'importe quel navigateurSolution de travail pour tous les navigateurs modernes.
Compatibilité:
Apparence:
la source
transform
propriété. IE 9 prend en charge-ms-transform
que vous pourriez utiliser, mais certains disent qu'il est assez pixélisé, il serait donc préférable de laisser IE 9 avec la valeur par défaut.Une solution simple consiste à utiliser la propriété
zoom
:la source
Version 2020 - utilisant des pseudo-éléments, la taille dépend de la taille de la police.
La case à cocher / radio par défaut est rendue en dehors de l'écran, mais CSS crée des éléments virtuels très similaires aux éléments par défaut. Prend en charge tous les navigateurs, pas de flou. La taille dépend de la taille de la police. Les actions du clavier (espace, tabulations) sont également prises en charge.
https://jsfiddle.net/ohf7nmzy/2/
Version 2017 - en utilisant le zoom ou l'échelle
Le navigateur utilisera une fonctionnalité non standard
zoom
si elle est prise en charge (belle qualité) ou standardtransform: scale
(floue).La mise à l'échelle fonctionne sur tous les navigateurs, mais elle sera floue sur Firefox et Safari .
https://jsfiddle.net/ksvx2txb/11/
la source
Je viens de sortir avec ceci:
Bien sûr, grâce à cela, vous pouvez changer la valeur de
content
selon vos besoins et utiliser une image si vous le souhaitez ou utiliser une autre police ...Le principal intérêt ici est que:
La taille de la case à cocher reste proportionnelle à la taille du texte
Vous pouvez contrôler l'aspect, la couleur, la taille de la case à cocher
Pas besoin de HTML supplémentaire!
Seulement 3 lignes de CSS nécessaires (la dernière est juste pour vous donner des idées)
Modifier : Comme indiqué dans le commentaire, la case à cocher ne sera pas accessible par la navigation des touches. Vous devriez probablement ajouter
tabindex=0
une propriété à votre étiquette pour la rendre focalisable.la source
display:none
sur l'entrée l'empêchera d'être sélectionné avec latab
clé, donc je ne pense pas que ce soit une bonne idée.Aperçu:
http://jsfiddle.net/h4qka9td/
la source
L'apparence des cases à cocher semble être corrigée par défaut. Mais comme l'a souligné Worthy7, cela peut être résolu en utilisant la propriété CSS
appearance
. Cela rendra les cases à cocher complètement vides, afin que vous puissiez définir votre propre apparence. Ce qui est bien à ce sujet: vous pouvez utiliser votre code HTML existant. Inconvénient: c'est une technologie expérimentale . Edge et IE n'utilisent pas le style personnalisé.Voici les styles CSS nécessaires:
Captures d'écran:
Chrome:
Firefox:
Bord:
C'EST À DIRE:
la source
Je cherchais à faire une case à cocher qui était juste un peu plus grande et j'ai regardé le code source de 37Signals Basecamp pour trouver la solution suivante-
Vous pouvez modifier la taille de la police pour agrandir légèrement la case à cocher:
Ensuite, vous pouvez aligner correctement la case à cocher en procédant comme suit:
la source
Vous pouvez agrandir les cases à cocher dans Safari - qui résiste généralement aux approches habituelles - avec cet attribut:
-webkit-transform: scale(1.3, 1.3);
La source
la source
Je pense que la solution la plus simple consiste à remodeler la case à cocher comme certains utilisateurs le suggèrent. Le CSS ci-dessous fonctionne pour moi, ne nécessite que quelques lignes de CSS et répond à la question OP:
Comme mentionné dans cet article, la propriété zoom ne semble pas fonctionner sur Firefox et les transformations peuvent provoquer des effets indésirables.
Testé sur Chrome et Firefox, devrait fonctionner pour tous les navigateurs modernes. Modifiez simplement les propriétés (couleurs, taille, bas, gauche, etc.) selon vos besoins. J'espère que cela aide!
la source
Ma compréhension est que ce n'est pas facile du tout de faire un navigateur croisé. Au lieu d'essayer de manipuler le contrôle de case à cocher, vous pouvez toujours créer votre propre implémentation à l'aide d'images, de javascript et de champs de saisie masqués. Je suppose que cela est similaire à ce que niceforms est (d'après la réponse de Staicu lonut ci-dessus), mais ne serait pas particulièrement difficile à mettre en œuvre. Je crois que jQuery a un plugin pour permettre également ce comportement personnalisé (recherchera le lien et publiera ici si je peux le trouver).
la source
J'ai trouvé cette bibliothèque CSS uniquement très utile: https://lokesh-coder.github.io/pretty-checkbox/
Ou, vous pouvez rouler le vôtre avec ce même concept de base, similaire à ce que @Sharcoux a publié. C'est essentiellement:
input:checked~div label
pour le style vérifié<label>
est cliquable en utilisantfor=yourinputID
la source
Le problème est que Firefox n'écoute pas la largeur et la hauteur. Désactivez cela et votre bon aller.
la source
Les autres réponses montraient une case pixelisée, alors que je voulais quelque chose de beau. Le résultat ressemble à ceci:
Même si cette version est plus compliquée, je pense qu'il vaut la peine de l'essayer.
JSFiddle: https://jsfiddle.net/asbd4hpr/
la source
vous pouvez modifier la hauteur et la largeur dans le code ci-dessous
la source