rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[XHTML/CSS] Hauteur des balises <div>

Posté par Free K, le jeudi 21 avril 2005 à 21:24:14
Bonjour à tous,

Je suis un passionné de standards XHTML et CSS, mais il y a un problème que je n'ai jamais réussi à résoudre sans utiliser un moyen détourné, lent, complexe et pas propre :

il s'agit d'attribuer une hauteur maximale (100% du conteneur) à une balise <div>.

Bien entendu, on pense directement à :

DIV.maClasse {
height: 100%;
}


Mais les tailles (width et height) en pourcentages (%) ne fonctionnent pas pour les balises de type bloc (donc <div>).

Par exemple, pour une barre de navigation, à côté de la zone de contenu de la page : ce sont deux <div>, l'un généralement plus long (haut) que l'autre : celui du contenu, et on veut que dans ce cas le bas de la barre de navigation soit aligné avec celui de la zone de contenu, qui est plus grande, autrement dit que le <div> de la barre de navigation ait une hauteur maximale par rapport à celle de la page entière.

J'espère que ça parlera à quelqu'un, et merci beaucoup si vous trouvez une solution !
Répondre à Free K  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
crabs, le jeudi 21 avril 2005 à 21:38:49
Salut,
Tu peux essayer avec postion: absolute, puis top et bottom dans un div.
Ce div il faut lui mettre un id et pas un class, comme ça tu peux le
retrouver avec du javascript.
Pour les navigateurs respectant le W3C, tu peux même essayer avec
position: fixed => le cadre ne se déplace plus avec la page
Attention, ça fontionne pas avec IE le fixed, il faut jouer avec
javascript sur l'évement scroll du body pour repositionner le cadre
à chaque déplacement, ça fait scintiller mais la fonctionnalité est là...

A+, Crabs ..., I think Slackware sounds better than 'Microsoft,'
-- Patrick Volkerding - founder and maintainer of Slackware
Répondre à crabs

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Nitruk, le samedi 30 décembre 2006 à 17:07:34
Utilise document.body.clientHeight, en javascript, et document.body.clientWidth.
En ce qui me concerne, je suis confronté à un problème similaire, je voudrais obtenir la hauteur maximale de la zone contenu (celle de la fenêtre quand elle est maximisée) sans avoir à redimensionner la fenêtre. Je pourrais le calculer facilement si je trouvais une propriété qui donne la hauteur totale de la fenêtre

exemple avec window.height :

hauteurmax = parseInt(document.body.clientHeight) / parseInt(window.height) * parseInt(screen.availHeight);
Répondre à Nitruk

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Artis.psyko, le mercredi 14 novembre 2007 à 20:19:26
Tiens nu vieux sujet. ^^
Je vais quand même ajouter ma pierre.

Déjà les blocs prennent toute la place qu'ils peuvent par defaut ( =100%).
Ensuite, bien sur que si les bloc acceptent les pourcentages. Seulement il faut savoir que le pourcentage se calcule sur la taille du bloc parent. Ainsi il faut qu'il ai une taille (enfin de mon côté ça n'a jamais marché si la taille du parent n'était pas spécifié, sauf en pourcentage).

Voilà. ^^
Répondre à Artis.psyko

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Gihef, le mercredi 14 novembre 2007 à 22:18:39
Bonjour,

En fait ce problème n'a pas de solution.

Il faut s'y prendre autrement et donner l'impression que les blocs ont la même hauteur.

Ça peut se faire avec une image d'arrière-plan dans le bloc le plus grand qui contient les autres 
pompage
alistapart (en)


--
Répondre à Gihef

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lybepe, le jeudi 7 février 2008 à 12:33:40
Le probleme de cette solution c'est que firefox ne comprends pas que la <div> parent a une hauteur variable ... j'essaie de me pencher dessus mais je ne trouve pas de solution : help !
Répondre à lybepe

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Dalida, le jeudi 7 février 2008 à 12:45:16
salut,

tu ne trouveras sans doute pas mieux mieux que les fausses colonnes conseillées par Gihef en <4>.

[ Mathieu ]
« On embauchera plus s'il est moins compliqué de licencier. » LP, 29 août 2007.
Répondre à Dalida

7


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Ululo, le mardi 18 mars 2008 à 16:05:38
Je n'ai pas vraiment de solution mais moi j'utilise des marges.
Par exemple pr un div d'environ 85%, étant donné que les largeurs de fenêtres ne varient pas énormément, je mets une marge de 150 px à gauche et la même à droite.
Ululo
Répondre à Ululo

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Floriang33, le mardi 18 mars 2008 à 16:25:36
C'est pas encore possible en CSS2.

Quand tu attribus en CSS un width ou un height, ils s'appliquent sur le contenu interne. La division est extensible en hauteur par defaut.

Toute fois, tu peux essayer quelque chose qui se raprochera pas mal de se que tu veux. Il s'agit bien de mettre un height: 100%;, mais il faut ainsi y rajouter un margin: auto; afin que la specification soit prise en compte par rapport au body exterieur.

Donc ça donnerait:

.taClasse {
height: 100%;
margin: auto;
}

Je pense que ceci marchera si toute fois tu as bien coder l'interface exterieur.
Répondre à Floriang33

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
magichit, le mardi 18 mars 2008 à 17:47:30
Salut,
j'espéres pas répondre à côté mais:

Pourquoi pas utiliser un un <table> plutot? ça permet de créer une vrai colonne, et c'est plus simple que de devoir modifier le positionnement des div avec des float ou en absolute voire faire des calculs en js.

<table style="width="100%; height:100%;" >
<tr>
<td>
Colonne de 100% a gauche
</td>
<td>
Le reste du contenu de la page
</td>
</tr>
</table>

Répondre à magichit

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Dalida, le mardi 18 mars 2008 à 18:31:41
salut,

tout simplement parce qu'un tableau ne doit pas servir à la mise en page.
[ Mathieu ]
Pensez à utiliser le bouton "Conserver la mise en forme du texte sélectionné" pour mettre en forme les codes sources et à cocher l'option "Résolu" quand c'est le cas, merci !
Répondre à Dalida

11


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
capoeiradance, le lundi 24 mars 2008 à 22:07:35
Bonsoir tout le monde je viens à l'instant de trouver la réponse à votre problème pour mettre une hauteur en pourcentage à une div et je vous dirais pas c'est quoi mouahahaha...je plaisante me haissais pas tout de suite rooooh.

Bon voila mon code HTML:

<div id="wrapper"></div>

Code CSS:

html{
height: 100%;
}
body{
height: 100%;
margin: 0;
padding: 0;
}
#wrapper {
width: 100px;
height: 100%;
background-color: #03125F;
margin: auto;
}

Comme vous pouvez le constater il faut remonter jusqu'à la balise HTML et lui assigner une hauteur en pourcentage de 100% comme sur le body,ensuite vous pouvez mettre la hauteur que vous voulez à votre div.
Bonne soirée, il y a mon adresse si vous voulez. younass95@hotmail.com
Répondre à capoeiradance

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ameyrus, le dimanche 20 avril 2008 à 18:58:44
Hey

merci capoeiradance!!!! pile poil ce que je cherchais ^^

@+
Répondre à ameyrus

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
CauxMika, le lundi 12 mai 2008 à 16:14:55
Parfait ! Merci beaucoup, 2 heures que je cherchais ;-)
Répondre à CauxMika

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Thomas44, le samedi 28 juin 2008 à 04:51:31
Bonsoir
J'ai un petit soucis avec le cadre de ma page web : http://lifebooster.free.fr/ecouter_de_la_musique.html
On voit bien que les <div> utilisées pour les bords latéraux ne s'adaptent pas à la taille du <body>.
Voici le code CSS associé :

html
{
height: 100%;
width : 100%;
}

body
{
height: 100%;
width : 100%;
margin: 0;
padding: 0;
}

#leftcenter
{
height : 100% ;
width : 32px ;
background-image : url(pics/cadre/leftcenter.gif);
background-repeat : repeat-y ;
float : left;
}

#rightcenter
{
height : 100% ;
width : 40px ;
background-image : url(pics/cadre/rightcenter.gif);
background-repeat : repeat-y ;
float : right;
}

Merci de votre aide :)
Répondre à Thomas44
Logiciels pertinents trouvés dans les téléchargements
Télécharger DivX codecs 6.8.3DivX codecs - Le codec Divx Community est gratuit pour un usage personnel et permet de lire les fichiers au format DivX ! L'installeur...Catégorie: Codecs
Licence: Freeware/gratuit
Télécharger Dr.DivX OSS 2.0.0Dr.DivX OSS - Dr. DivX OSS est une application libre et portable permettant de convertir (transcoder) un grand nombre de formats vidéo...Catégorie: Conversion
Licence: Open Source
Télécharger Firstpage 2006Firstpage - First Page 2006 est un éditeur html gratuit et excellent. Il permet de travailler un code HTML en couleur, ainsi que de...Catégorie: Editeurs HTML
Licence: Freeware/gratuit
Télécharger DivFix   1.10DivFix - Il est fréquent que lors d'un téléchargement de vidéos ou lors d'un gravage sur CD ou autres supports la vidéo soit...Catégorie: Codecs
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [XHTML/CSS] Hauteur des balises <div> »