Faire une case à cocher ressembler à un bouton CSS
Je pense que ce que je suis en train de réaliser peut être fait plus facilement. Cependant, j'ai peu de JS expérience et aucun dans la voie de la CSS. Donc je suis en utilisant prédéfinis CSS et le code JS et la subtilité de le modifier. Je vais donc expliquer mon objectif final et de voir si ce que j'ai actuellement est acceptable.
- Un menu du haut sur la page web qui a des boutons et des cases à cocher toutes les inspecter visuellement le même
- Je voudrais des cases à cocher pour ressembler à des boutons, par exemple, pas de case à cocher, seule l'étiquette.
- J'aimerais que la case à cocher pour conserver sa fonctionnalité comme une case à cocher donné le code JS c'est l'appel de
- Est la façon dont je vais appeler le code JS via le bouton checkbox et de corriger ou trop compliqué?
<li><a title="Zoom to U.S" input type="button" name="US" onclick="US();"><span>Zoom to U.S.</span></a></li>
<li><a title="Test 1 KML"><input type="checkbox" id="kml-red-check" name="kml-red-check" onclick="toggleKml("red");"><span>Test 1 KML</span></a></li>
- Paire de la case avec une étiquette, masquer la case à cocher et le style de l'étiquette de la faire ressembler à un bouton
- Chaque fois que j'ajoute le '/**
* Start by hiding the checkboxes */ input[type=checkbox] { visibility: hidden; }
il s'arrête de fonctionner - Je tiens à ajouter que vous devriez ne jamais les utiliser
onclick
sur une case à cocher ou un bouton radio depuis ce ne couvre pas les autres méthodes de basculement (par exemple par l'intermédiaire du clavier ou en cliquant sur l'étiquette). Utilisationonchange
à la place. C'est probablement aussi la raison pour laquelle cela ne fonctionne pas lorsque vous masquer la case à cocher. - J'ai changé le
onclick
àonchange
et j'présentent toujours les mêmes résultats quand j'masquer la case à cocher via CSS - Est-il une raison spécifique que vous avez saisie des éléments à l'intérieur d'un tag?
- Je suis à rassembler des informations pour obtenir des résultats. Que dois-je faire pour corriger cela?
- voir ma réponse mis à jour
Vous devez vous connecter pour publier un commentaire.
html:
css:
http://css-tricks.com/almanac/selectors/c/checked/
Ne fonctionne pas sur les lt IE9 bien.
edit: Suite à vos balisage il devrait être quelque chose comme ceci:
Et de vérifier ensuite si la case est cochée ou non dans votre fonction.
onchange /onclick dans une case qui ne fonctionne pas dans IE
édité de nouveau: modification de l'attribut NAME de sorte que vous ne finissent pas avoir des problèmes plus loin le long de la ligne. Et ajouté un peu de solution de contournement pour le ne répond pas, mais en fin de compte souhaité, onchange fonctionnalité dans IE8. Finalement, vous devez ajouter un compte à rebours pour votre fonction, plutôt que dans la ligne.
Il n'est pas possible de changer l'apparence d'une case à cocher si radicalement à l'aide de CSS.
Ce que vous POUVEZ faire cependant, c'est le style de l'élément label assez pour la faire ressembler à un bouton. En raison de la nature de l'élément label, en cliquant dessus, il va passer à l'état de la case à cocher garder votre fonctionnalité intact.
Ici est de savoir comment le faire
Balisage
Noter que j'ai changé la
onclick
gestionnaire deonchange
puisqu'il est impossible de cliquer sur la case elle-même. Sa valeur change quoique lorsque vous cliquez sur l'étiquetteStyle
for
attribut de lalabel
champ. Lefor
doit contenir leid
de la case que vous souhaitez lier l'étiquette avec...for
attribut est tout à fait nécessaire dans les étiquettes, et je ne vois pas de n'importe où dans votre code. Je vais juste laisser ça ici 🙂cela fonctionne comme le bouton , si vous ne voulez pas montrer case utiliser ce
check it out ici https://jsfiddle.net/h0ntpwqk/2/