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 positionnement d'une DIV par rapport aux autres


Sujet :

Positionnement en CSS

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Points : 9
    Points
    9
    Par défaut Problème de positionnement d'une DIV par rapport aux autres
    Bonjour

    Je suis en train de créer un site, et j'ai un problème actuellement avec 2 div
    La page est séparé en 2 colonnes
    <--------100%--------->
    <-----65%----><--35%->

    là j'ai une div sur la gauche de l'écran donc sur 65% :

    Code css : 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
     
    div#bandeauHaut
    {
    height:auto;
    width:64%;
    color:black;
    font-size:10pt;
    margin-top:10px;
    margin-left:0.5%;
    background:url(../images/Bandeaux/BandeauPromo1.jpg);
    border-radius:20px 0px 20px 0px;
    border-right: 1px solid lightsteelblue;
    border-top: 1px solid lightsteelblue;
    border-left: 1px solid lightsteelblue;
    border-bottom: 1px solid lightsteelblue;
    }
    et là une la div de droite :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    div#fluxrss
    {
    position:relative;
    margin-top:-1467px;
    height:auto;
    width:35%;
    background:white;
    float:right;
    }
    Mon problème c'est que je suis obligé d'ajuster avec une marge négative ma deuxième div (flux rss), et si je rajoute du contenu et des sauts de ligne dans la div bandeauHaut l'ajustement n'est plus bon,
    normal quoi,
    Mais comment pourrais-je modifier ces div afin que le margin-top ne soit plus a modifier svp ?


    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 : 41
    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
    Déjà, éviter de mélanger pourcentages et pixels. Ensuite mettre ton bandeauHaut en float:left.

    Si ça ne fonctionne pas, le mieux serait que tu nous montres un exemple en ligne.

  3. #3
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    Et en mettant un display: inline-block; sur le conteneur de droite ?

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Rebonjour

    j'ai fait un plan pour vous expliquer plus clairement mon problème :


    le bandeau en haut doit être fixe, c'est actuellement le cas,
    le body déroule grâce a une scrollbar,

    mon problème c'est que dès que j'ajoute un <br /> (dans mon bandeau/BandeauHaut/Contenu)
    ma div fluxrss se décale vers le bas
    il se peut que le contenu change régulièrement et je ne veux pas avoir a réajuster la marge a chaque fois

    j'ai essayer de mettre des float left et inline-block seulement les autres div passent au dessus de mon bandeau
    Comment pourrai je donc résoudre ce problème svp ?

    Merci

  5. #5
    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 : 41
    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
    Citation Envoyé par garona Voir le message
    Comment pourrai je donc résoudre ce problème svp ?
    On ne va pas tout te faire non plus, montre-nous ce que tu as déjà fait (CSS + HTML).

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    ok voila donc le CSS

    bannière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #header {
    	text-align: left;
    	visibility: visible;
    	position:relative;
    	height: 80px;
    	margin-left:5px;
    	margin-right:5px;
    	min-width:800px;
    }
    le contenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #contenu {
    	width:100%;
    	height:100%;
    	text-align: left;
    	overflow:auto;
    }
    balise du bandeau haut
    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
     
    div#bandeauHaut
    {
    height:auto;
    width:64%;
    color:black;
    font-size:10pt;
    margin-top:10px;
    margin-left:0.5%;
    background:url(../images/Bandeaux/BandeauPromo1.jpg);
    border-radius:20px 0px 20px 0px;
    border-right: 1px solid lightsteelblue;
    border-top: 1px solid lightsteelblue;
    border-left: 1px solid lightsteelblue;
    border-bottom: 1px solid lightsteelblue;
    }
    le code de ma div flux rss (elle même composée de 4 div)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    div#fluxrss
    {
    position:relative;
    margin-top:-1456px;
    display:inline-block;
    height:auto;
    width:35%;
    background:white;
    float:right;
    }
    est ce vraiment utile de montrer le html ?
    je n'ai mis dedans que du texte des <br /> et la déclaration des divs

  7. #7
    Rédacteur

    Homme Profil pro
    Responsable de projet
    Inscrit en
    Mai 2009
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de projet
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 634
    Points : 3 511
    Points
    3 511
    Par défaut
    oui c'est utile de mettre le HTML pour voir comment sont déclarées les div

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Hello,

    L'une des solutions est "d'envelopper" tes DIV.
    Tu postionnes ces 'wrapper' à l'aide de la propriété Float: (left/right);.
    Tu peux positionner ensuite tes DIV de manière relative ou absolue.
    Je te donne la structure HTML pour que ce soit plus clair.


    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
     
    <body>
    <div id="wrapper"> <!-- ici l enveloppe générale -->
     
        <div id="header">
        </div>
     
        <div id="wrapperContenu"> <!-- Cette enveloppe va englober tes 2 div centrales / float: left;-->
            <div id="bandeauHaut"></div>
            <div id="contenu"></div>
        </div>
     
        <div id="RSS"> <!-- Puis le flux RSS / float: right;-->
        </div>
     
    </div>
    </body>
    C'est un avis personnel mais, je pense que tu dois te servir dans ton cas de la notion d'héritage.
    Ici, les 'wrapper' codent pour le positionnement et la taille des blocks,
    les div se concentrent sur le contenu (liste, table, fonts, etc ...) et bénéficient des propriétés de leur parents en terme de taille.

    Enfin j'ai parcouru ton code et j'ai remarqué quelques petites erreurs.
    propriétés non compatibles IE, redondance des déclarations, ... je t'encourage à te documenter sur les CSS, à apprendre le language grâce à de la biblio.

    Il y a de très bonnes explications sur la notion de "wrapper" sur le net. Je te laisse fouiller un peu si tu le souhaite.

    Cdt.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Bonjour

    Merci pour les réponses,
    j'ai finalement trouvé,
    j'ai déclarer ma div fluxrss après la div de contenu, en faisant l'inverse cela marche très bien

    merci a vous en tout cas

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/10/2008, 22h06
  2. Comment positionner une div par rapport à une autre
    Par solorac dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 17/07/2008, 21h08
  3. Réponses: 4
    Dernier message: 17/07/2007, 16h49
  4. Positionner une "div" par rapport a un "input"
    Par dragonfly dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 27/06/2007, 10h53
  5. [css] Positionnement d'une img par rapport a une autre img
    Par dark_vidor dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 26/02/2006, 00h07

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