2009-09-14 6 views
0

Ce que j'essaie d'accomplir est simple: changer la disposition des cases à cocher du navigateur via CSS. C'est possible? Ou dois-je utiliser javascript pour cela? Et comment?css case à cocher personnalisée mise en page

Merci d'avance!

+0

Que voulez-vous dire par cases à cocher du navigateur? – rahul

+0

Mise en page de la case à cocher? S'il vous plaît expliquer votre question plus. – Randell

+0

Voulez-vous modifier l'apparence 3D par défaut de la case à cocher? – rahul

Répondre

1

boursiers Nevermind trouvé la sollution moi-même.

Ce script que j'ai écrit vous oblige à avoir un div/span pour chaque case, avec les classes "cochée" et "non cochée" avec les dispositions respectives, et un événement onclick dans chacun, avec le code suivant (étant 'b_availcheck' l'id de la case correspondante):

<div class="checked" onclick="javascript:change_checkbox(this, 'b_availcheck');"></div> 

le javascript:

function hide_checkboxes() { 
    var checkboxes = document.getElementsByTagName('input'); 
    for (var i = 0; i < checkboxes.length; i++) { 
     if (checkboxes[i].type == 'checkbox') { 
      checkboxes[i].style.visibility = 'hidden'; 
     } 
    } 
} 

function change_checkbox(e, target) { 
    if (e.className == 'checked') { 
     document.getElementById(target).checked=false; 
     e.className = 'unchecked'; 
    } 
    else { 
     document.getElementById(target).checked=true; 
     e.className = 'checked'; 
    } 
} 

window.onload = hide_checkboxes; 

Ce script attache un événement onload à la fenêtre, les cases à cocher par défaut seront cachés au démarrage .. en outre, si le javascript est désactivé , les cases à cocher par défaut fonctionneront au lieu de cela ceux-là (merci beaucoup à Tigraine pour le conseil)

0

Si vous avez besoin de ce navigateur indépendant, optez pour un contrôle personnalisé.

Jetez un oeil à

jQuery custom styled checkbox

Si vous ne voulez pas une base jQuery puis regardez pour

Checkboxes, Radio Buttons, Select Lists, Custom HTML Form Elements

+0

Je voudrais mieux une solution sans JQuery. Je sais comment le faire dans ce cadre, mais il n'y a pas besoin de l'utiliser dans ce cas, puisque le seul javascript dont j'ai besoin est à cet effet. – yoda

+0

phoenix, votre deuxième exemple utilise trop de code pour quelque chose de simple, et le troisième exemple utilise réellement jquery. – yoda

0

il est impossible avec css, vous devez utiliser javascript . Je recommande vraiment fancy-form

2

Ce que nous avons l'habitude de faire est de créer une solution Javascript personnalisée (un div qui change de couleur lorsqu'on clique dessus) qui change la valeur d'une case cachée.

De cette façon, vous n'êtes pas limité par CSS et si Javascript est désactivé, il se dégrade bien à un checkbox normal (très important pour l'accessibilité)

+0

Merci pour le conseil: D – yoda

+0

+1 amélioration progressive bat JS seulement. Cependant, la ré-implémentation des contrôles de formulaire peut toujours présenter des problèmes d'accessibilité. par exemple, le code d'exemple de Yoda ne peut pas être contrôlé au clavier comme une vraie case à cocher. – bobince

Questions connexes