J'ai 3 divs avec les identifiants header
, content
et footer
. L'en-tête et le pied de page ont une hauteur fixe et sont conçus pour flotter en haut et en bas. Je veux le milieu content
hauteur calculée automatiquement avec jQuery. Comment puis-je rendre cela possible?
#header {
height: 35px;
width: 100%;
position: absolute;
top: 0px;
z-index: 2;
}
#footer {
height: 35px;
width: 100%;
position: absolute;
bottom: 0px;
z-index: 2;
}
Merci d'avance...:)
blasteralfred
bien tu peux faire ça:
$(function(){
var $header = $('#header');
var $footer = $('#footer');
var $content = $('#content');
var $window = $(window).on('resize', function(){
var height = $(this).height() - $header.height() + $footer.height();
$content.height(height);
}).trigger('resize'); //on page load
});
voir le violon ici: http://jsfiddle.net/maniator/JVKbR/
démo: http://jsfiddle.net/maniator/JVKbR/show/
La bonne façon de faire est d'utiliser du bon vieux CSS:
#content{
width:100%;
position:absolute;
top:35px;
bottom:35px;
}
Et le bonus est que vous n'avez pas besoin d'attacher à l'événement window.onresize! Tout s'ajustera lorsque le document sera refait. Le tout pour le prix très bas de quatre lignes de CSS!
Du haut de ma tête:
$('#content').height(
$(window).height() - $('#header').height() - $('#footer').height()
);
Est-ce ce que vous voulez dire?
Vous pouvez lier une fonction comme suit, au lieu d'init au chargement
$("div").css("height", $(window).height());
$(window).bind("resize",function() {
$("div").css("height", $(window).height());
});
$(document).ready(function(){ contsize();});
$(window).bind("resize",function(){contsize();});
function contsize()
{
var h = window.innerHeight;
var calculatecontsize = h - 70;/*if header and footer heights= 35 then total 70px*/
$('#content').css({"height":calculatecontsize + "px"} );
}