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 :

Positionnement Div Css float clear


Sujet :

Positionnement en CSS

  1. #1
    Membre actif

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 183
    Points : 207
    Points
    207
    Par défaut Positionnement Div Css float clear
    Bonsoir, désolé pour le titre je ne savais pas trop quoi mettre. J'ai donc un petit problème de positionnement de div. Un exemple est toujours plus parlant que des explications :
    http://ashgenesis.free.fr/div/index.html
    http://ashgenesis.free.fr/div/style.css

    Donc, d'après l'exemple que je viens de fournir, je souhaiterais que les div data_left et data_right restent contenus dans le div_data et ne débordent pas. Un clear ne fonctionne pas car, dans ce cas, c'est tous le div data qui redescend en dessous du div menu. Un overflow fait à peu près ce que je souhaite, à la différence près c'est qu'il créé des barres de défilement et que je n'en veux pas. Si, je spécifie une hauteur supérieur à div data_left, alors, la représentation est conforme à ce que je souhaite, mais le problème, c'est que le contenu du div data_left est variable.
    J'ai donc pensé que la meilleure solution serait de dire à div data_left et div data_right de rester dans div data sans déborder ou alors div data devra s'adapter à la hauteur de div data_right ou div data_left. Mais je ne vois pas comment le mettre en place.

    Je précise que les margins couleurs bordures etc... disparaitrons après résolution du problème. C'est pour faciliter la mise en page


    Toutes suggestions seraient appréciables Merci

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Et si tu mets ça à la fin de ton div_data :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <br style="clear:both" />

  3. #3
    Membre actif

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 183
    Points : 207
    Points
    207
    Par défaut
    Merci mais ca ne fonctionne pas, j'avais déjà essayé avec une astuce du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div style="clear:both">&nbsp;</div>
    En le rajoutant à la fin du div data, il ne se passe rien et si je le met juste apres en dehors du div data mais avant div footer alors ce dernier se retrouve à commencer au niveau de la fin du menu. Pour illustrer le résultat voir
    http://ashgenesis.free.fr/div/indexbr.html

    Merci pour votre suggestion

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Tu as ça :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div id='data'>
       <h1>div data</h1>
       <div id='data_left'>
          ...	
       </div>
       <div id='data_right'>
          ...
       </div>
    </div>
    <br style="clear:both" />
    Il faut faire ça :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div id='data'>
       <h1>div data</h1>
       <div id='data_left'>
          ...	
       </div>
       <div id='data_right'>
          ...
       </div>
       <br style="clear:both" />
    </div>

  5. #5
    Membre actif

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 183
    Points : 207
    Points
    207
    Par défaut
    J'ai effectué le test en rajoutant votre commande dans le div mais il n'y avait aucun changement c'est pourquoi je l'avais sorti du div data et là le changement effectué était que le footer arrivait en dessous du menu.

    En reprenant votre solution, il n'y a aucun changement apparent voir http://ashgenesis.free.fr/div/indexbr.html que je viens de remodifier.

    Merci

  6. #6
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Pourtant ce code fonctionne bien :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
       <title>essai</title>
    </head>
    <body>
       <div style="background:#f00">
          <div style="float:left;height:400px;width:200px;background:#ff0">
          </div>
          <div style="float:left;height:200px;width:200px;background:#0f0">
          </div>
          <br style="clear:both" />
       </div>
    </body>
    </html>
    Donc il doit y avoir une déclaration dans ton code qui gêne cette solution de s'appliquer correctement ...

  7. #7
    Membre actif

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 183
    Points : 207
    Points
    207
    Par défaut
    Oui, tout à fait, d'ailleurs j'ai utilisé un code similaire pour un site. Ce qu'il y a là, c'est qu'il faut prendre aussi en compte le fait que le menu à gauche soit lui aussi en float left.


    Je me suis aperçu d'un oubli dans le style ce qui permet d'avancer un peu, maintenant le footer est bien aligné à gauche au bon endroit. Mais il y a encore ce problème de débordement des div data_left et data_right tous deux contenus dans div data.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    Je pense que tu testes sous FF car sous IE6 c ok.

    Voici une solution pour ton pb :
    Dans ton fichier CSS tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #data{
    	float : left;
    	background-color: blue;
    	color: black;
    	width: 98%;
    	padding: 10px;
    	border : 3px solid yellow;
    	height: 200px;
    	margin: auto;
    }
    sous FF si tu specifie la hauteur d'une div, alors son contenu se deborde, donc il faut supprimer ce style, soit si tu veux avoir une hauteur minimale, donc il faut rajouter le code ci dessou dans le fichier css en gardant le style "height:200px;" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    html>body div#data { /* pour les browser non-IE*/
    	height:auto;
    	min-height:200px;
    }
    Finalement ton code sera :
    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
     
    #data{
    	float : left;
    	background-color: blue;
    	color: black;
    	width: 98%;
    	padding: 10px;
    	border : 3px solid yellow;
    	height: 200px;
    	margin: auto;
    }
     
    html>body div#data { /* pour les browser non-IE*/
    	height:auto;
    	min-height:200px;
    }
    Après tu peux mettre la div avec clear:both
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div id="data">
      ...
      <div id="data_left">...</div>
      <div id="data_right">...</div>
      <div style="clear:both">&nbsp;</div>
    </div>

  9. #9
    Membre actif

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 183
    Points : 207
    Points
    207
    Par défaut
    Impeccable, merci c'était bien le height mon erreur en fait je l'avais rajouté pour quelques tests sachant que je n'en avais pas forcement besoin mais j'ai oublié de le retirer maintenant que ca fonctionne nickel sous FF et ie6 d'apres ce que tu me dis ben c'est du tout bon
    Et il manquait aussi cette fameuse partie pour FF


    Encore merci à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. décalage positionnement div css
    Par omariovich dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 13/01/2009, 14h55
  2. positionnement div css
    Par calitom dans le forum Mise en page CSS
    Réponses: 16
    Dernier message: 05/12/2008, 12h28
  3. [HTML & CSS] Positionnement DIV
    Par Yoshidu62 dans le forum Mise en page CSS
    Réponses: 38
    Dernier message: 26/04/2006, 17h14
  4. [CSS] div et float
    Par zan001 dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 20/12/2005, 14h36
  5. [CSS] Utilisation de deux div avec float
    Par Ditch dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 06/10/2005, 15h48

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