Bonjour,
Après une bonne semaine de recherche, sur ce forum et sur le net, je me permet de poser un épineux problème HTML et CSS.
Voilà, dans un site Intranet que je fais évoluer, je dois mettre en place un questionnaire destiné aux internautes afin de prendre leur avis sur le site en lui même.
Afin d'être le plus "user friendly", il a été décidé en réunion de la nécessité d'un comportement bien précis (et le mandataire de la réalisation c'est bibi...) :
Le questionnaire présente une série de proposition ("la nouvelle mouture de ce site vous plait-elle ?", "les couleurs sont-elles à votre goût ?", etc...) et plusieurs réponses possibles à chaque fois ("Oui", "Je ne sais pas", "Non", etc...).
Ce sont des données tabulaires, donc on utilise une balise "table" pour les présenter (et là, je n'ai pas trop le choix).
Là où cela se corse, c'est le comportement attendu : lorsque l'utilisateur clique dans la case, mais pas forcément sur le bouton radio, il faut que le bouton radio se coche !
Bon, j'ai déjà trouvé un début de solution a peu prés propre :
HTML:
CSS :
Bon, j'espère que le code reste à peu prés clair. Mon problème est que je ne peux pas fixer de hauteur pour les cellules. Le div à l'intérieur de chaque td me permet de contourné un bug du core de mozilla (http://www.quirksmode.org/css/mozilla_table.html), mais il n'arrive pas à s'adapter à 100% de la hauteur du td, son conteneur parent.
Sans le div, en mettant le label en absolut, ça marche sous IE et safari, mais pas sous FireFox et Mozilla... Avec le div, ça marche presque mais le div ne prend pas toute la hauteur de la cellule...
Si quelqu'un a une idée, il me sauve la vie !!
Merci de toute façon de vous intéresser à mon problème...
A bientôt,
Jérôme.
Modifié par Jeronimo_Paris (26 May 2009 - 13:16)
Après une bonne semaine de recherche, sur ce forum et sur le net, je me permet de poser un épineux problème HTML et CSS.
Voilà, dans un site Intranet que je fais évoluer, je dois mettre en place un questionnaire destiné aux internautes afin de prendre leur avis sur le site en lui même.
Afin d'être le plus "user friendly", il a été décidé en réunion de la nécessité d'un comportement bien précis (et le mandataire de la réalisation c'est bibi...) :
Le questionnaire présente une série de proposition ("la nouvelle mouture de ce site vous plait-elle ?", "les couleurs sont-elles à votre goût ?", etc...) et plusieurs réponses possibles à chaque fois ("Oui", "Je ne sais pas", "Non", etc...).
Ce sont des données tabulaires, donc on utilise une balise "table" pour les présenter (et là, je n'ai pas trop le choix).
Là où cela se corse, c'est le comportement attendu : lorsque l'utilisateur clique dans la case, mais pas forcément sur le bouton radio, il faut que le bouton radio se coche !
Bon, j'ai déjà trouvé un début de solution a peu prés propre :
HTML:
<table class="question">
<tr>
<td></td>
<td>Oui</td>
<td>Ne sais pas</td>
<td>Non</td>
</tr>
<tr>
<td>Proposition 1...</td>
<td><div><input tabindex="1" type="radio" name="Proposition1" id="Proposition1_1" value="1"/><label for="Proposition1_1"> </label></div></td>
<td><div><input tabindex="2" type="radio" name="Proposition1" id="Proposition1_2" value="2"/><label for="Proposition1_2"> </label></div></td>
<td><div><input tabindex="3" type="radio" name="Proposition1" id="Proposition1_3" value="3"/><label for="Proposition1_3"> </label></div></td>
</tr>
...
</table>
CSS :
.question, .question tr
{
position: relative;
vertical-align: top;
}
.question tr td
{
border: solid 1px black;
position: relative;
background-color: red;
padding: 0px;
margin: 0px;
/* width: 120px;
height: 60px;*/
}
.question tr td div
{
position: relative;
width: 100%;
height: 100%;
padding: 0px;
margin: 0px;
border: solid 1px Yellow;
vertical-align: middle;
text-align: center;
}
.question tr td div label
{
display: block;
position: absolute;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
overflow: hidden;
background-color: Blue;
}
.question tr td input
{
position: relative;
z-index: 100;
background-color: Green;
}
Bon, j'espère que le code reste à peu prés clair. Mon problème est que je ne peux pas fixer de hauteur pour les cellules. Le div à l'intérieur de chaque td me permet de contourné un bug du core de mozilla (http://www.quirksmode.org/css/mozilla_table.html), mais il n'arrive pas à s'adapter à 100% de la hauteur du td, son conteneur parent.
Sans le div, en mettant le label en absolut, ça marche sous IE et safari, mais pas sous FireFox et Mozilla... Avec le div, ça marche presque mais le div ne prend pas toute la hauteur de la cellule...
Si quelqu'un a une idée, il me sauve la vie !!
Merci de toute façon de vous intéresser à mon problème...
A bientôt,
Jérôme.
Modifié par Jeronimo_Paris (26 May 2009 - 13:16)