2009-12-30 6 views

Répondre

1

Vous devez utiliser JavaScript pour ceci.

+0

il is'nt tout autre aller? – sarah

+0

Non, j'ai peur. BTW, pourquoi vous vous limitez? Est-ce que c'est un peu un travail de défi? –

+0

Je fais une application mobile où dans je ne devrais pas utiliser le script Java – sarah

0

La seule autre chose en dehors de JavaScript que pourrait travailler (je ne l'ai pas essayé mais c'est quelque chose à enquêter) est d'utiliser le :focus pseudo class en CSS. Même si cela fonctionne, il ne s'agira probablement pas d'un navigateur croisé, mais comme vous ciblez des plates-formes mobiles spécifiques, cela pourrait être OK. Il fonctionnerait comme ceci:

<style> 
    #bar { display:none; } 
    #foo:selected #bar { display:block; }   
</style> 

<input type="radio" id="foo"> 
<label for="foo"><div id="bar">Stuff goes here</div></label> 

Je ne sais pas si: focus applique également à une étiquette de l'élément de forme associée, mais il peut certainement considérer que cliquer sur l'étiquette d'un élément n'active l'événement « click » sur le formulaire élément c'est l'étiquetage.

Quelque chose à essayer de toute façon. Si vous ciblez Safari mobile, vous devez avoir un bon support pour ce type de sélecteurs.

+0

Pourquoi ne pas essayer '#foo: focus + label {display: block; } ' –

+0

Je ne suis pas capable de reproduire le même.J'ai un bouton radio sur sélectionnez je devrais montrer un champ de texte. – sarah

0

Oui, pouvez-vous le faire avec un sélecteur de classe psudo, mais il ne fonctionnera certainement pas avec un autre navigateur. Vous pouvez vérifier:

pour une liste de ce que visionneur quels sélecteurs. IE 7 et inférieur ne prennent pas en charge le sélecteur: focus, bien que vous puissiez accomplir à peu près ce que vous voulez avec: hover (bien que j'imagine que vous ne voulez pas le montrer uniquement en stationnaire).

L'exemple suivant fonctionne dans Firefox (3.5):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 
<html lang="en"> 
<head> 
<style> 
input { float: left; } 

/* Make the text hidden when the page loads */ 
.text_to_show { display:none; } 

/* This style affects element which immediately follows the focused class */  
.trigger:focus + div.text_to_show { display: inline; }  

</style> 
</head> 
<body> 

<input type="radio" name="radio" class="trigger" /> 
<div class="text_to_show">This text is tied to the first radio button.</div> 

<input type="radio" name="radio" class="trigger" /> 
<div class="text_to_show">This text is tied to the 2nd radio button</div> 


</body> 
</html> 
Questions connexes