Attribuer hauteur "reste" à 3e division

Fermé
siobesirb Messages postés 8 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 8 juin 2010 - 19 mai 2010 à 14:30
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 19 mai 2010 à 18:08
Bonjour,

J'ai une page avec 3 divisions. Un bandeau en haut, une barre de navigation/menu, puis la zone d'affichage. Chaque division a sa propre couleur de fond. J'ai besoin de pouvoir utiliser une scroll bar dans la zone d'affichage, question de ne pas perdre le menu en défilant.

J'avais réussi à faire fonctionner le tout correctement, en définissant une hauteur en % pour chaque division.

Malheureusement, je dois modifier les 2 premières sections pour leur attribuer une hauteur fixe en px.

J'ai cru constater que je ne pouvais mettre de scroll bar sur une division sans hauteur définie.

Comment puis-je dire que la hauteur de la 3e division équivaut au "reste de la hauteur de la page"?.

J'ai trouvé sur un site un problème similaire ou on suggérait de créer une division avec 100% de la page, dans lequel on pouvait inclure les 2 premières divisions, ce qui laisse le reste de la division pour l'affichage. Malheureusement, avec cette solution, la scroll bar est alors relative à la page entière, et je perds la possibilité de faire défiler ma zone d'affichage sans que le menu ne bouge.

Vous connaissez une solution à ce problème?

Merci!

1 réponse

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
19 mai 2010 à 18:08
Tu peux récupérer la hauteur de la fenêtre en Javascript, et la réduire de la somme des hauteurs des deux parties du haut : tu obtiendras la hauteur du contenu. Pour la scrollbar, on peut la faire en CSS avec "overflow:scroll;".

Pour récupérer la hauteur :
function height() {
	if( typeof( window.innerWidth ) == 'number' )
		return window.innerHeight;
	else if( document.documentElement && document.documentElement.clientHeight )
		return document.documentElement.clientHeight;
}
1