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

Mise en page CSS Discussion :

problème de clear et float


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Par défaut problème de clear et float
    Bonjour, j'aimerai avoir deux-trois renseignement sur les float et clear

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <div id="conteneur">
      <div id="menu"></div>
      <div id="corp">
         <div class="element"></div>
         <div class="clear"></div>
      </div>
      <div class="clear"></div>
    </div>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    div#menu { float:left; }
    div#corp ( float: right; }
    .element { float: left; }
    .clear { clear:both; }
    Donc au moment où j'appel le clear ( le 1er ) est que le corp et menu vont être affecter ou seulement celui de element ?
    De plus j'ai vue d'autre variante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <div id="conteneur">
       <div id="menu"></div>
       <div id="corp">
          <div class="element"></div>
          <div class="clear">&nbsp;</div>
       </div>
      <div class="clear"></div>
     </div>
    Qu'elle est la différence...

  2. #2
    Membre expérimenté Avatar de Damouille
    Inscrit en
    Avril 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 268
    Par défaut
    Bonjour Damien,

    Qu'entends-tu par "effacé" ? Les clear n'effacent rien. Ils donne l'instruction qu'il faut arreter de "floater".

    Les floats, right ou left, donnent l'instruction à un élément de s'aligner à droite ou à gauche. De plus, les éléments en dessous de ce dernier s'ajusteront tout autour de lui en l'encerclant.

    Quand tu ne veux plus de ce comportement, et que tu veux que les éléments se mettent à la ligne tout bettement, tu utilises un clear.

    Pour la différence entre les 2 code, il y en a aucune. le "&nbsp;" est un espace. Il a du etre mis la juste pour que la div ne soit pas vide. Dreamwaver en rajoute partout quand tu utilise l'interface designer, j'en vois pas tellement l'intéret.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Par défaut
    D'accord, dsl pour effacer je voulais dire annulé ^^. et merci pour les infos
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <div id="conteneur">
      <div id="menu"></div>
      <div id="corp">
         <div class="element"></div>
         <div class="clear"></div>
      </div>
      <div class="clear"></div>
    </div>
    Concernant ma question ?
    Au moment au j'appel la 1er clear ( qui se trouve dans corp ) est que le menu et le corp ( le bloc ) vont être affecter ou juste le float du bloc élément va être annulé ?

  4. #4
    Membre expérimenté Avatar de Damouille
    Inscrit en
    Avril 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 268
    Par défaut
    les clear n'affectent que les éléments qui sont en dessous du clear.

    Pour répondre à ta question un clear à l'intérieur d'une div n'effecte que les éléments dans cette meme div.

    Dans ton exemple tu as besoin des deux pour "clearer" à la fois les élément du corps et du conteneur

  5. #5
    Membre Expert
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Par défaut
    Citation Envoyé par Damouille
    Pour répondre à ta question un clear à l'intérieur d'une div n'effecte que les éléments dans cette meme div.
    Pas tout à fait

    Il me semble que le clear affecte tous les éléments qui sont dans le même contexte de formatage. Dans son exemple, le clear n'agira effectivement pas sur le menu, non pas parce que le menu n'est pas à l'intérieur du div contenant le clear, mais parce que le #corps est positionné en float, ce qui établit justement un nouveau contexte de formatage.

    Pour illustrer, voici un exemple avec la même structure html (j'ai rallongé le menu que ce soit plus visible), mais dans lequel le premier clear prendra aussi en compte le menu flottant:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div id="conteneur">
      <div id="menu">menu <br />menu <br />menu <br />menu <br />menu <br />menu <br /></div>
      <div id="corp">
         <div class="element">elememnt flottant</div>
         <div class="clear">1er clear</div>
      </div>
      <div class="clear">2ème clear</div>
    </div>

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    div#menu { float:left; width:200px; }
    div#corp ( margin-left:210px; }
    .element { float: left; }
    .clear { clear:both; }

    si maintenant on applique le css suivant à la place (j'ai juste rajouté le width pour plus de similarité):

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    div#menu { float:left; width:200px;margin-right:10px; }
    div#corp { float: left; }
    .element { float: left; }
    .clear { clear:both; }

    On voit que le 1er clear reste, cette fois-ci et à cause du float sur le #corps, à côté du menu.
    Les bons réflexes:
    • avant de poser une question:
      règles | faq | tutoriels | recherche
    • clarté, politesse, vocabulaire et orthographe soignés = efficacité
    • remercier ceux qui ont pris le temps d'aider et :resolu: si c'est le cas

Discussions similaires

  1. Problème virgule / point sur float ?
    Par enki.bilal dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 29/08/2011, 13h50
  2. Problème chargment des valeurs float dans la table de fait
    Par nannou86 dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 20/04/2011, 14h35
  3. Problème avec div en float et bordures
    Par maya13400 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/11/2010, 19h57
  4. Problème de positionnement avec float left
    Par Neuromancien2 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 24/08/2007, 00h04
  5. Problème d'interprétation de float sur IE
    Par Fleep dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 30/01/2007, 17h13

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