IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Des <li> en float sans débordement ?


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Par défaut Des <li> en float sans débordement ?
    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).



    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:



    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <ul class="graphescontainer">
      <li>
        <div class="handle"><span class="edittitle">$varname</span></div>
          <object type="application/x-shockwave-flash" 
             bla bla bla   
          </object>
          <div class="edittext">Click here to add text</div>
       </li>
     
       ...
       Repeter 4 fois le <li>
       ... 
     
    </ul>
    <div class="clear"></div>
    CSS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    .graphescontainer
    {
      list-style-type: none;
      width: 100%;
      padding: 0px;
      margin: 0px;
    }
     
    .graphescontainer li
    {
      border: 1px solid #333333;
      margin: 3px;
      position: relative;
      float: left;
      width: 49%;
    }
     
    .graphescontainer li .handle
    {
      cursor: move;
      background-color: #333333;
      color: #FFFFFF;
      width: 100%;
      border: none;
      padding: 0px;
      margin-top: 0px;
      text-align: center;
      font-weight: bold;
      padding-bottom: 1px;
    }
     
    div.edittext
    {
      margin-top: 5px;
      cursor: text;
      text-align: left;
      padding: 3px;
      padding-top: 2px;
      background-color: #FFFFE1;
    }
     
    .clear
    {
      clear: both;
    }
    Images attachées Images attachées   

  2. #2
    Membre chevronné Avatar de masu
    Inscrit en
    Février 2004
    Messages
    428
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 428
    Par défaut
    en mettant un clear:left sur le 3e li ca devrai fonctionner je pense.

  3. #3
    Membre chevronné Avatar de masu
    Inscrit en
    Février 2004
    Messages
    428
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 428
    Par défaut
    je vien de tester ca semble fonctionner pas mal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <ul class="graphescontainer">
      <li>
        <div class="handle"><span class="edittitle">$varname</span></div>
          <object type="application/x-shockwave-flash" height="300px;">
          </object>
    			<span style="height:300px; ">&nbsp;</span>
          <div class="edittext">Click here to add text<br />
    			some more texte<br />and more
    			</div>
       </li>
    	 <li>
        <div class="handle"><span class="edittitle">$varname</span></div>
          <object type="application/x-shockwave-flash" height="300px;">
          </object>
    			<span style="height:300px; ">&nbsp;</span>
          <div class="edittext">Click here to add text</div>
       </li>
    	 <li class="clear_left">
        <div class="handle"><span class="edittitle">$varname</span></div>
          <object type="application/x-shockwave-flash" height="300px;">
          </object>
    			<span style="height:300px; ">&nbsp;</span>
          <div class="edittext">Click here to add text</div>
       </li>
    	 <li>
        <div class="handle"><span class="edittitle">$varname</span></div>
          <object type="application/x-shockwave-flash" height="300px;">
          </object>
    			<span style="height:300px; ">&nbsp;</span>
          <div class="edittext">Click here to add text</div>
       </li>
    </ul>
    <div class="clear">&nbsp;</div>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    .graphescontainer {
      list-style-type: none;
      width: 100%;
      padding: 0px;
      margin: 0px;
    }
    
    .graphescontainer li {
      border: 1px solid #333333;
      margin: 3px;
      position: relative;
      float: left;
      width: 49%;
    }
    
    .graphescontainer li .handle {
      cursor: move;
      background-color: #333333;
      color: #FFFFFF;
      width: 100%;
      border: none;
      padding: 0px;
      margin-top: 0px;
      text-align: center;
      font-weight: bold;
      padding-bottom: 1px;
    }
    
    div.edittext {
      margin-top: 5px;
      cursor: text;
      text-align: left;
      padding: 3px;
      padding-top: 2px;
      background-color: #FFFFE1;
    }
    
    .clear { clear: both; }
    .clear_left { clear:left; }
    cette solution te convient-elle, ainsi qu'a ton API "tool-man" ?

  4. #4
    Nouveau candidat au Club
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Par défaut
    super ça marche !

    En fait l'idée c'etait de mattre l'attribut uniquement sur le 3ème, moi j'essayais sur les 4 à la fois

    Bon ça fout un peu la boxon dans mon api, mais je pense povoir y remedier.
    De plus, le rendu est different sous FF et IE:
    sous FF, tout le bloc sescend (les deux li de la deuxieme ligne)
    sous IE, uniquement le 3eme descend.

    Bizarre... IE m'enerve

    Merci beaucoup encore !!!

Discussions similaires

  1. Comment avoir des div sur une même ligne sans utiliser float ?
    Par Sergejack dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 13/10/2007, 15h31
  2. Réponses: 4
    Dernier message: 18/03/2006, 20h34
  3. Type float sans virgule !!
    Par HULK dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 25/01/2006, 10h59
  4. Réponses: 5
    Dernier message: 02/11/2005, 11h49
  5. Saisie d'un entier sans débordement
    Par SteelBox dans le forum C
    Réponses: 8
    Dernier message: 28/10/2005, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo