Des <li> en float sans débordement ?

Des <li> en float sans débordement ? - HTML/CSS - Programmation

Marsh Posté le 29-06-2006 à 11:04:15    

Bonjour,
 
Aujourd'hui, une question sur les listes.
 
CE QUE JE VEUX FAIRE
 
J'ai des <li> organisés dans un <ul> (normal jusque là), positionnés en float, ce qui fait qu'ils se retrouvent sur plusieurs lignes (voir le screenshot pour l'exemple).
La hauteur de ces <li> varie en fonction du contenu (on entre un texte).
 
http://www.developpez.net/forums/attachment.php?attachmentid=2401&stc=1&d=1151570881
 
CE QUI SE PASSE
 
Le comportement observé dans la première image s'applique lorsque l'on rentre un texte dans le deuxieme <li> de la rangée, ou tous les <li> de la dernière rangée. Je vous explique pourquoi un peu plus loin.
 
Le problème que j'ai, c'est pour le premier <li>. Voilà ce qui se passe:
 
http://www.developpez.net/forums/attachment.php?attachmentid=2402&stc=1&d=1151570887
 
Vous aurez reconnu un probleme courant avec les floats, c'est à dire qu'il manque un clear:both sous la première rangée pour aligner tout ce petit monde.
 
Si ce problème n'apparait pas pour les éléments de la dernière rangée, c'est qu'il y a effectivement un "footer" clear: both à la fin.
 
LES QUESTIONS QUE JE ME POSE
 
Si on refléchi bien, il suffirait de rajouter un <div> ou un <hr> clear: both tous les 2 éléments pour palier au problème. Ceci marche sous FF mais petit problème sous IE.
Mais ce n'est pas là ou je veux aller. En effet, les éléments <li> doivent etre ABSOLUMENT SEULS dans le<ul> car tous ces éléments "bougent" dans le DOM (avec un peu de javascript, API "tool-man" pour ceux qui connaissent).
 
Donc pas possible de rajouter des éléments.
 
Questions:
1/ Pourquoi est-ce que ca fonctionne correctement avec le deuxième élément d'une rangée (comme illustré dans la première image) ? Intuitivement, je m'attendais à ce que ça foire...
 
2/ Comment résoudre le problème illustré dans la seconde image an utilisant uniquement des propriété de style pour l'élément <li> ?
 
En espérant que l'on puisse trouver une réponse ensemble sweatdrop
Merci d'avance ! biggrin
 
CODE
 
HTML:

Code :
  1. <ul class="graphescontainer">
  2.   <li>
  3.     <div class="handle"><span class="edittitle">$varname</span></div>
  4.       <object type="application/x-shockwave-flash"
  5.          bla bla bla 
  6.       </object>
  7.       <div class="edittext">Click here to add text</div>
  8.    </li>
  9.    ...
  10.    Repeter 4 fois le <li>
  11.    ...
  12. </ul>
  13. <div class="clear"></div>


 
CSS:
 

Code :
  1. .graphescontainer
  2. {
  3.   list-style-type: none;
  4.   width: 100%;
  5.   padding: 0px;
  6.   margin: 0px;
  7. }
  8. .graphescontainer li
  9. {
  10.   border: 1px solid #333333;
  11.   margin: 3px;
  12.   position: relative;
  13.   float: left;
  14.   width: 49%;
  15. }
  16. .graphescontainer li .handle
  17. {
  18.   cursor: move;
  19.   background-color: #333333;
  20.   color: #FFFFFF;
  21.   width: 100%;
  22.   border: none;
  23.   padding: 0px;
  24.   margin-top: 0px;
  25.   text-align: center;
  26.   font-weight: bold;
  27.   padding-bottom: 1px;
  28. }
  29. div.edittext
  30. {
  31.   margin-top: 5px;
  32.   cursor: text;
  33.   text-align: left;
  34.   padding: 3px;
  35.   padding-top: 2px;
  36.   background-color: #FFFFE1;
  37. }
  38. .clear
  39. {
  40.   clear: both;
  41. }

Reply

Marsh Posté le 29-06-2006 à 11:04:15   

Reply

Marsh Posté le 30-06-2006 à 11:13:59    

up

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed