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

HTML Discussion :

[HTML] Problème avec DIV, impossible de mettre la hauteur à 100% !!


Sujet :

HTML

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 8
    Points
    8
    Par défaut [HTML] Problème avec DIV, impossible de mettre la hauteur à 100% !!
    Bonjour,

    voici un problème que je n'arrive pas à résoudre depuis un moment !!
    En fait, je veux que seule ma partie centrale soit "scrollable". Du coup, j'ai opté pour une iframe. Mais voyant tous les inconvenients que cela représentait, j'ai choisi de passer par un DIV.
    Seulement je n'arrive pas a mettre la hauteur de ce div a 100%. Je ne sais pas pourquoi mais il ne s'adapte pas à la table parente. Lorsque je regle la taille du div en dur dans le css ( ex : "height:750px;" ), le resultat est parfait en 1200*1024, mais se deteriore en cas de changement de résolution ou retrecissement de le fenetre.
    Lorsque je met "height:100%;", si la partie centrale (le div) est plus grande que la table parente, le scroll se trouve sur la fenetre, alors ke selon moi, grace au "overflow: auto;", le div devrait avoir comme taille maximale la taille de la table parente et y ajouter un scroll si la taille du div depasse celle ci.
    Je ne suis pas un pro du tout, donc veuillez m'excuser si cette question est stupide, ou si ce problème vient de mon code.

    Voici le code de ma page :

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>------</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style type="text/css">
    <!--
    html, body {
      height:100%;
      width:100%;
      margin: 0;
      padding: 0;
    }
    #centpourcent {
      height: 100%;
      width:100%;
      }
      #container{
            width:100%;
            overflow: auto;
            padding-right: 15px;
            height:100%;
    }
    -->
    </style>
    <body>
    <table id="centpourcent" cellpadding="0" cellspacing="0" bgcolor="#000000">
    	<!-- title="haut" -->
    	<tr>
    		<td width="180" height="30" valign="top" >&nbsp;</td>
    		<td width="*" height="30" align="center">
    			<? include 'heure.php'; ?>
    		</td>
    	</tr>
     
    	<!-- title="centre" -->
    	<tr valign="top">
    		<!-- title="centre : Menu" -->
    		<td width="180" align="center" valign="top">
    			<table width="180" bgcolor="#000000" border="0" cellpadding="0" cellspacing="0">
    				<? include 'menu_accueil.php'; ?>
    			</table>		
    	    </td>
    		<!-- title="centre : Page" -->
        	<td width="100%" bgcolor="#006699">
    			<table id="centpourcent" cellpadding="0" cellspacing="0" >
    				<tr>
    					<td width="20" height="20" valign="top"><img src="images/coin_hg.jpg"></td>
    					<td width="*" height="20">&nbsp;</td>
    					<td width="20" height="20" align="right" valign="top"><img src="images/coin_hd.jpg"></td>
    				</tr>
    				<tr>
    					<td width="20" height="*">
    					</td>
    					<td align="center" valign="top">
    						<div id="container"> 
    							<? include 'accueil.php'; ?>
    						</div>
    					</td>
    					<td width="20" height="*">&nbsp;</td>
    				</tr>
    				<tr valign="bottom">					
    					<td width="20" height="20"><img src="images/coin_bg.jpg"></td>
    					<td width="*" height="20">&nbsp;</td>
    					<td width="20" height="20" align="right"><img src="images/coin_bd.jpg"></td>					
    				</tr>			
    			</table>
    		</td>
    		<!-- title="centre : Droite" -->
    		<td width="50">&nbsp;&nbsp;&nbsp;</td>
    	</tr>
    	<!-- title="bas" -->
    	<tr>
    		<td width="180" valign="bottom" height="30">&nbsp;</td>
    		<td width="*" align="center">
    			<span class="Style1">&copy;&nbsp;Site 2005</span>
    		</td>
    		<td width="50" valign="bottom" height="30" align="right">&nbsp;</td>
    	</tr>
    </table>
    </body>
    </html>

    Merci à tous !

    N'hesitez pas a me demander des précisions sur mon problème, si je me suis mal exprimé, ou si il manque du code.[/code]

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 159
    Points : 160
    Points
    160
    Par défaut
    J'ai pas mega super etudié ton pb, mais ce qui est sur c'est que ca "overflowera" jamais si ton div n'as pas une taille fixe...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Merci pour ta réponse.

    comment faire alors pour que mon div prenne toute la taille (surtout la hauteur) de la table dans laquelle il est ??
    Je peux pas mettre une taille fixe à mon div, ca sert à rien dans mon cas !

    Si vous avez une autre solution à me proposer je ne suis pas contre !

    Merci

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2004
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    J'ai un problème plus ou moins similaire...

    Quand j'exprime la hauteur en pourcentage, elle ne se met pas correctement.

    Par contre, quand elle est exprimée en pixel, pas de soucis!!!

    C'est bizzare...

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 68
    Points : 41
    Points
    41
    Par défaut
    j'ai également le même problème.

    c'est seulement sous FF que j'ai le problème sous IE aucun pb.

    voici la page :
    http://j.miot.free.fr/new/

    le code CSS est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #contenu{
    	height: 100%;
    	width: 100%;
    	left: 0px;*/
    	padding-top: 8em; 	/* pour garder la place au menu */
    	padding-bottom: 3em; 	/* pour garder la place au pied de page */
    	overflow: auto; 		/*barre de defilement auto*/
    }
    effectivement si l'on donne une hauteur fixe ca contourne le problème mais bon c'est pas une solution, il serait bien que ca soit fluide.

    est ce que quelqu'un connait une astuce?

  6. #6
    Membre averti

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2004
    Messages : 220
    Points : 322
    Points
    322
    Par défaut
    Pour firefox dans ton css :

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 68
    Points : 41
    Points
    41
    Par défaut
    j'ai rajouté ton code mais cela n'a pas modifier le comportement de la page.

    toujours le problème.

    pourquoi cela pourrait il corriger le problème de barre de défilement?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Merci pour vos réponses, mais je ne sais toujours pas comment régler ce problème !!

    Merci encore

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Je fais aussi ce genre de truc et c la galère tout pareil.
    Par contre j ai noté que j avais le meme type de bug, et qu'en séparant html et body dans mon css un de mes pb s'est résolu (miracle !) Dans mon cas mes div "enfants" dépassaient de mon div "parent" (sans forcage top left etc)..j ai séparé body et html et c rentré dans l ordre.. mais bon.. a tenter

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Le problème c'est que la hauteur n'est pas définie sur une page web. Du coup ton "height = 100%" ne peut pas fonctionner.

    Voilà l'astuce que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    heightNav =  window.innerHeight
    document.getElementById('monBody').setAttribute('height', heightNav + 'px')
    En fait je récupère la taille de la fenêtre interne du navigateur et ensuite je l'applique au style de la balise body qui a pour id "monBody".
    Toutes mes autres définitions CSS ont leur "height" exprimés en pourcentage et ça fonctionne bien.

    Ca fonctionne sous FireFox, je n'ai pas encore testé sous IE...

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 105
    Points : 119
    Points
    119
    Par défaut
    alors déja, tu as mis un doctype, tres bien, mais le doctype te forces a faire les choses selon les normes!


    les normes disent que les feuilles de style doivent obligatoirement être entre <head></head>, dans ta feuille tu as oublié de fermé le tag <head>

    normalement ta feuille marche avec ca (selon ce que j'ai testé), si ca ne marche pas, essaie de faire une feuille de style externe puis au lieu de <style type....> ecris plutot
    <link href="nom_du_fichier.css" rel="stylesheet" type="text/css"> (oui car chez moi avec <style type....> des fois ca marche pas alors que l'autre fonctionne, allez savoir!)

  12. #12
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Pour continuer ce qu'a dit hakurou :
    Passe ton site au validateur HTML du W3C ainsi tu verras déjà toutes les fautes syntaxiques de ton code.
    Quand tu ouvres des balises php fait <?php et non pas <?.
    Les tableaux ne sont pas fait pour faire de la mise en page donc je ne saurai que trop te conseiller la mise en page à base de div et de feuille de style CSS.
    Pour ce qui est de la hauteur de ton div, essaie de donner une taille en dur à ton tableau (si tu souhaites rester avec des tableaux) et laisse ton height:100%; dans container.

  13. #13
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut
    J'ai pas tout lu en détail mais pour pouvoir utiliser le height:100% sur IE tu dois supprimer ton doctype et ça marchera. Si tu n'y tiens pas tu dois utiliser les propriétés min et max-height sur FF et faire un hack ou deux pour IE (regarde sur le ouèb).

    Tchao

  14. #14
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 105
    Points : 119
    Points
    119
    Par défaut
    alors je viens de lire ce forum:
    http://www.developpez.net/forums/sho...ht+pourcentage

    c'est le même principe si ce n'est que c'etait avec des <div> et nom du <table>, pour que ca marche, il faut bien ecrire le css : div#ID_DE LOBJET{

    donc si tu ne veux pas changer le table pour du positionement par <div> il faut se renseigner sur le # du css et ce que l'on peut mettre autre que div devant.

    j'ai fait un excercice ou j'ecrivais comme toi le css, le height voulait pas marcher puis quand j'ai ecrit div# ca a directement marché, sur IE et FF

  15. #15
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Citation Envoyé par hakurou
    c'est le même principe si ce n'est que c'etait avec des <div> et nom du <table>, pour que ca marche, il faut bien ecrire le css : div#ID_DE LOBJET{

    donc si tu ne veux pas changer le table pour du positionement par <div> il faut se renseigner sur le # du css et ce que l'on peut mettre autre que div devant.

    j'ai fait un excercice ou j'ecrivais comme toi le css, le height voulait pas marcher puis quand j'ai ecrit div# ca a directement marché, sur IE et FF
    Le # permet d'indiquer dans ton CSS que tu veux donner un style à un id (le div que tu mets devant est facultatif, il correspond en fait à la balise à laquelle tu as donné un id).
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ...
    <table>
      <tr>
        <td>
          <div id="haut">bla bla bla</div>
        </td>
      </tr>
      <tr id="bas">
        <td>bla bla bla hop</td>
      </tr>
    </table>
    ...
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #haut /*ou div#haut*/{
    background-color:#f00;
    }
     
    #bas /*ou tr#bas*/ {
    background-color:#0f0;
    }
    Si tu comptes utiliser le style plusieurs fois, tu dois utiliser une class à la place de ton div et un "." au d'un "#" dans ton CSS.

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

Discussions similaires

  1. Problèmes avec div id...
    Par Angeldu74 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 14
    Dernier message: 28/02/2006, 14h56
  2. [HTML] problème avec ScrollBarre
    Par bchristo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 10/12/2005, 18h17
  3. [HTML] Problème avec la balise <mailto>
    Par Taylor² dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 10/10/2005, 16h36
  4. [HTML] problème avec un text area
    Par krfa1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 29/10/2004, 11h37

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