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 :

Mise en page avec div et CSS


Sujet :

CSS

  1. #1
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut Mise en page avec div et CSS
    Bonjour,

    J'ai 2 questions d'ultra débutant sur la mise en page en CSS.

    1/ J'ai un div contenu dans un autre div. Je veux que le div intérieure soit positionné tout en bas du div conteneur et cela quelle que soit la hauteur et/ou le contenu du div conteneur (j'ai du texte et un image dans le div conteneur, juste au dessus du div intérieur).

    le div intérieur possède la classe ".bas" et est défini comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .bas
    {
    	margin-top: 0px;
    	margin-bottom: 0px;
    	position: relative; 
    	bottom: 0; 
    /*	width:100%; */
    }
    J'ai bien pris soin de mettre le bottom à 0. J'ai essayé avec une position absolute, mais ca fout tout en l'air. Je ne sais pas pourquoi ca ne fonctionne pas, sur aucun navigateur.

    2/ Sur une autre page j'ai un div de navigation placé a gauche avec un float left et de taille fixe (width: 300px. J'ai a droite de ce div de navigation un autre div (un div de contenu) qont je ne veux pas spécifier la largeur (par défaut ce div doit normalement occuper toute la largeur possible, ce que je souhaite précisément. Or lorsque je modifie la largeur de mon navigateur le div de contenu se place en dessous du div de navigation alors que je voudrais que la largeur de ce div de contenu (largeur non fixé dans le CSS) s'ajuste automatiquement. J'ai essayé de jouer sur la propriété clear (both, left, right, none) mais rien n'y fait. J'ai essayé de mettre le div de contenu avec un float right, dispaly inline-block, etc. Rien n'y fait.

    Voila ma définition du div menu nommé left-admin:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    .left-admin {
    	padding: 0px;
    	margin:10px;
    	width:300px;
    	float:left;
        border-style: solid;
        border-width: 1px;
        border-color: lightgrey;
    	font-family: verdana, arial;
    	font-size: 11px;
    	color: #666666;
    	display: inline-block;
    }
    et ma définition du bloc de contenu :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    .right-admin {
    /* 	width:100%; */
    	margin:10px;
    	display: inline-block;
     }
    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
    1/ Voir ici : http://css.developpez.com/faq/?page=...ement_absolute
    2/ Le display:inline-block; ne sert à rien, mets un margin-left:322px; sur ton bloc droit.

  3. #3
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    Merci Bisûnûrs.

    Pour la 2/ c'est OK, bien que je suis un peu réticent a mettre 2 fois (ou compter 2 fois) dans le code CSS la largeur de mon menu de gauche (une premières fois dans le width du menu de gauche et une seconde dans le margin-left du menu de droite). OK.

    En revanche pour la question 1/ en absolute c'est absolument impossible parce que dés que je modifie la hauteur de mon navigateur le div positionné en absolute bouge. C'est absolument impossible. La solution ne peut-être qu'en utilisant un positionnement relatif.

    Peut-être que pour cette question 1/ n'as tu bien pas compris mon besoin. J'ai un certain nombre de carré ou rectangle sur ma page et tout est aligné. J'ai appelé plus haut ces carrés des div conteneurs. Ces carrés contiennent une image de taille dimensionnée pour entrer dans ces carrés ainsi que un peu de texte et un rectangle (un div intérieur) que je veux mettre tout en bas du carré (le div conteneur). Or évidement je ne veux pas faire du padding bestial avec des &nbsp ou des "br" : je veux que mon div intérieur vienne se coller en bas du carré (div conteneur) automatiquement. Possible ?

  4. #4
    Membre expert
    Avatar de Muchos
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    1 700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 700
    Points : 3 849
    Points
    3 849
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Jolt0x
    La solution ne peut-être qu'en utilisant un positionnement relatif.
    Attention: la position de la DIV "bas" est absolute par rapport à la DIV "content". Ex:

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <!DOCTYPE html>
    <html dir="ltr" lang="fr-FR">
    <head>
     <meta charset="UTF-8" />
     <title>Position absolute</title>
     <style type="text/css">
    .content {
     position: relative;
     min-height: 4em;
     background: #abc
    }
    .bas {
     position: absolute;
     bottom: 0;
     left: 25%;
     height: 2em;
     width: 50%;
     background: #def;
    }
     </style>
    </head>
    <body>
     <div class="content">
      <div class="bas"></div>
     </div>
    </body>
    </html>

  5. #5
    Membre habitué
    Avatar de Mell
    Femme Profil pro
    Développeuse Front-end
    Inscrit en
    Janvier 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeuse Front-end
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2011
    Messages : 107
    Points : 143
    Points
    143
    Par défaut
    Le position:relative ne fonctionne qu'avec top et left. Pour que ton bottom:0 fonctionne il te faut de l'absolute.
    Sinon regarde du coté de position:fixed

  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
    Citation Envoyé par Jolt0x Voir le message
    En revanche pour la question 1/ en absolute c'est absolument impossible parce que dés que je modifie la hauteur de mon navigateur le div positionné en absolute bouge. C'est absolument impossible. La solution ne peut-être qu'en utilisant un positionnement relatif.
    J'en doute, mais si tu peux nous montrer le code complet de ton problème, ou mieux, un exemple en ligne, ça nous aiderait beaucoup à comprendre ton problème.

    Citation Envoyé par Mell_ Voir le message
    Le position:relative ne fonctionne qu'avec top et left
    Non !

    Citation Envoyé par Mell_ Voir le message
    Pour que ton bottom:0 fonctionne il te faut de l'absolute.
    Non !

    Citation Envoyé par Mell_ Voir le message
    Sinon regarde du coté de position:fixed
    Mais pour quoi faire ?

  7. #7
    Membre habitué
    Avatar de Mell
    Femme Profil pro
    Développeuse Front-end
    Inscrit en
    Janvier 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeuse Front-end
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2011
    Messages : 107
    Points : 143
    Points
    143
    Par défaut
    Baah si.. un bottom:0 ne fonctionnera pas avec un position:relative ...

    http://jsfiddle.net/dvn4y/

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    C'est juste parce que tu ne comprends pas le fonctionnement de position: relative;...

    Un élément en position relative sera positionné en fonction de la place qu'il aurait occupé s'il n'était pas positionné. Donc c'est sûr qu'avec bottom: 0, ça ne modifie pas grand chose, ni d'ailleurs si tu mettais top: 0, left: 0 ou right: 0.

    Glossaire CSS. Type de positionnement | position
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    Merci a tous. Ca fonctionne parfaitement avec ce que me propose Muchos. Tagué en Résolut.

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

Discussions similaires

  1. mise en page avec un div et du css
    Par laurentSc dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 22/04/2011, 20h34
  2. Probleme de mise en forme avec DIV et CSS
    Par freesurfer dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 09/02/2007, 15h26
  3. Problème de mise en page avec feuille de style css
    Par leroivert dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 15/11/2005, 09h36
  4. [CSS][HTML] Mise en page : Avec ou sans tableaux ?
    Par arno2000 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 09/08/2005, 02h34

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