Devant le succès de mon premier post (en nombre de visites tout au moins) je reformule ma problématique.
Une page web contient des champs de type radio+boutons de type :
- si oui, précisez,
- sinon : message si-non
- si pas d'avis : un autre message
et le résultat produit ressemble à :
mais il pourrait ressembler à :
la structure sous-jacente est un liste <ul class="choisir">. Chaque élément <li> contient un radio bouton <input type="radio" class="select"> et un espace de contenu masquable <div class="contenu"> disposés comme suit :
Le code javascript est chargé de l'animation masquage/démasquage des contenus suivant l'état coché/non coché du radio-bouton. Dans la mesure ou le javascript est collé dynamiquement au chargement de la page, et non en-ligne, on peut l'utiliser indifféremment dans lmes deuux cas, et même dans le cas ou des listes en contiendraient d'autres récursivement, avec des cases à cocher - pensez à une treeview sur un système de fichiers par exemple.
Pour le javascript, tout va bien. Avec un framework comme prototype, le code est simplissime.
LE PROBLEME est au niveau de la CSS :
>>>>> comment faire pour afficher dans le premier cas les items de liste [les boutons radios] de façon alignés tandis que les items de contenu disposés toujours à la même place ?
L'utilisation des floats sur les <li> n'est pas toujours heureuse, puisque les <div> s'alignent par rapport au parent <li, tandis quel'utilisation d'un position:absolute sur les <div> conduit à un dépassement de ces derniers par rapport au conteneur du <ul> est qu'un overflow ne semble pas résoudre, étant donné que <ul> n'est pas parent direct des <div>, on à les hiérachies d'accès :
ul.choisir/li/input.selectv
ul.choisir/li/div.contenu
si quelqu'un à une idée, merci de m'en faire part
Modifié par hefeustz (21 Nov 2007 - 10:02)
Une page web contient des champs de type radio+boutons de type :
- si oui, précisez,
- sinon : message si-non
- si pas d'avis : un autre message
et le résultat produit ressemble à :
mais il pourrait ressembler à :
la structure sous-jacente est un liste <ul class="choisir">. Chaque élément <li> contient un radio bouton <input type="radio" class="select"> et un espace de contenu masquable <div class="contenu"> disposés comme suit :
<ul class="choisir">
<li>
<input type=="checkboox class="select"">
Réponse : Oui
<div class="contenu"> Du texte, des champs, etc...</div>
</li>
<li><!--Choix suivant...--></li>
<li><!--Autre choixt...--></li>
</ul>
Le code javascript est chargé de l'animation masquage/démasquage des contenus suivant l'état coché/non coché du radio-bouton. Dans la mesure ou le javascript est collé dynamiquement au chargement de la page, et non en-ligne, on peut l'utiliser indifféremment dans lmes deuux cas, et même dans le cas ou des listes en contiendraient d'autres récursivement, avec des cases à cocher - pensez à une treeview sur un système de fichiers par exemple.
Pour le javascript, tout va bien. Avec un framework comme prototype, le code est simplissime.
LE PROBLEME est au niveau de la CSS :
>>>>> comment faire pour afficher dans le premier cas les items de liste [les boutons radios] de façon alignés tandis que les items de contenu disposés toujours à la même place ?
L'utilisation des floats sur les <li> n'est pas toujours heureuse, puisque les <div> s'alignent par rapport au parent <li, tandis quel'utilisation d'un position:absolute sur les <div> conduit à un dépassement de ces derniers par rapport au conteneur du <ul> est qu'un overflow ne semble pas résoudre, étant donné que <ul> n'est pas parent direct des <div>, on à les hiérachies d'accès :
ul.choisir/li/input.selectv
ul.choisir/li/div.contenu
si quelqu'un à une idée, merci de m'en faire part
Modifié par hefeustz (21 Nov 2007 - 10:02)