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 :

Utiliser toute hauteur disponible


Sujet :

Dimensionnement en CSS

  1. #1
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut Utiliser toute hauteur disponible
    Bonjour,

    Je m'enerve sur un CSS.
    Je voudrais que ma page remplisse toujours toute la hauteur avec en particulier une image de fond présente du bas header, jusqu'en bas de la page.

    Le plus prés que j'ai reussi à obtenir donne ça :


    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <style type="text/css">
    html,body {
    	height: 100%;
    }
     
    div#page {
    	margin: 0 auto;
    	width: 1000px;
            border: 1px solid green;
            height: 100%;
    }
     
    div#header {
    	border: 1px solid blue;
    	height: 183px;
    }
     
    div#corps {
    	background-image: url(design/fond.gif);
    	background-repeat: repeat-y;
    	background-color: blue;
    	height: 100%;
    }
     
     
    div#footer {
    	background-image: url(design/fond.gif);
    	background-repeat: repeat-y;
    	background-color: red;
    	height: 40px;
    	}
    </style>
    </head>
    <body>
    <div id="page">
    	<div id="header"></div>
    	<div id="corps"></div>
    	<div id="footer"></div>
    </div>
    </body>
    </html>
    Ma #page prend bien toute la hauteur du navigateur mais mon #corps prends la même dimension (au lieu de prendre tout l'espace disponible) tout en commencant après le header, ce qui fait qu'il dépasse de la page.

    Le fond ne doit pas être présent sur #header, ce qui m'empeche de le mettre plus simplement sur #page.

    Est-ce que j'ai tout faux dans mon approche ou est-ce qu'on peut corriger ?

    Merci.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 822
    Points : 983
    Points
    983
    Par défaut
    Salut,

    tu ne pourras pas faire exactement ce que tu veux (me semble t-il)...

    Voici une solution qui s'en rapproche:
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <style type="text/css">
    div{
    	margin:0;
    	padding:0;
    }
     
    html,body {
    	height: 100%;
     
    	margin:0;
    	padding:0;
    }
     
    div#page {
    	position: relative;
    	margin: 0 auto;
    	width: 1000px;
        height: 100%;
     
    	border-left: 4px solid grey;
    	border-right: 4px solid grey;
    	background-color: purple;
    }
     
     
    div#header {
    	border-top: 4px solid grey;
    	height: 183px;
    	background-color: red;
    }
     
    div#corps {
    	background-image: url(design/fond.gif);
    	background-repeat: repeat-y;
    	background-color: blue;
    	height: 300px;
    }
     
     
    div#footer {
    	position: absolute;
    	bottom:0;
    	left:0;
    	background-color: green;
    	height: 40px;
    	width: 100%;
    	border-bottom: 4px solid grey;
    	}
     
    </style>
    </head>
    <body>
    	<div id="page">
    		<div id="header">header</div>
    		<div id="corps">mon texte</div>
    		<div id="footer">footer</div>
    	</div>
    </body>
    </html>
    border-top/right/bottom/left n'ont pas l'air de fonctionner sous IE<8 mais on est obligé de faire comme ça car sinon on dépasse la taille des 100%
    => attention, si la fenetre est trop petite, le footer sera au dessu des autres éléments (il faut définir un min-height)


    Une autre solution consisterait a definir la hauteur de tous tes elements en %

  3. #3
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 747
    Points
    3 747
    Je ne réponds pas aux questions techniques par MP.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La solution de la faq ne repond pas à mon problème : il ne s'agit pas d'avoir le footer en bas mais d'etirer le corps jusqu'au footer.
    Si je défini le footer comme dans la faq, il se met en bas de la fenetre du navigateur mais mon #corps continue a aller encore plus bas.

    Pour la proposition de boboss123, malheureusement le corps ne prends pas non plus toute la hauteur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 747
    Points
    3 747
    Par défaut
    Mets min-height au lieu de height.
    Je ne réponds pas aux questions techniques par MP.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ca donne la même chose.
    Il prend 100% de la taille de son conteneur, donc la taille de la page mais sous le header.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 13
    Dernier message: 01/11/2014, 18h04
  2. Réponses: 1
    Dernier message: 06/08/2009, 14h06
  3. Div occupant toute la hauteur disponible
    Par Alexdezark dans le forum Mise en page CSS
    Réponses: 15
    Dernier message: 30/03/2009, 16h51
  4. Comment savoir quel programme utilise toute la RAM ?
    Par Gloup dans le forum Administration système
    Réponses: 4
    Dernier message: 26/05/2006, 18h22
  5. [VBA]Utiliser les objet disponible d'un programme en VB
    Par seblefebvre dans le forum Général VBA
    Réponses: 13
    Dernier message: 01/02/2006, 10h34

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