Bonjour à tous,
j'ai eu une désagréable surprise récemment sous Internet Explorer pour mon dernier template. J'ai partitionné mon site en divs et chacune des parties contient un background (répété ou non, selon les besoins graphiques). Le problème survient en 1280*1024 sous Internet Explorer (il existe aussi un problème sous netscape et opéra mais je peux y remédier avec du javascript). Le background du body, lorsqu'on resize le template, se décale parfois (tout le temps, ça serait trop beau ) d' 1 pixel, ce qui est très chatoyant visuellement, comme vous pouvez vous en douter...
Voici le code html de la page :
ainsi que le code css lié :
Les hauteurs désignées pour les différents divs sont en conséquence de la hauteur du background à respecté pour ces parties (elles ne sont pas là par hasard, pour résumé...).
D'habitude, on me dit que je ne suis pas clair du tout mais n'hésitez pas à me le faire savoir si c'est le cas ici aussi .
j'ai eu une désagréable surprise récemment sous Internet Explorer pour mon dernier template. J'ai partitionné mon site en divs et chacune des parties contient un background (répété ou non, selon les besoins graphiques). Le problème survient en 1280*1024 sous Internet Explorer (il existe aussi un problème sous netscape et opéra mais je peux y remédier avec du javascript). Le background du body, lorsqu'on resize le template, se décale parfois (tout le temps, ça serait trop beau ) d' 1 pixel, ce qui est très chatoyant visuellement, comme vous pouvez vous en douter...
Voici le code html de la page :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<link href="css/styles.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
<!--
function getWindowHeight() {
var windowHeight = 0;
if (typeof(window.innerHeight) == 'number') {
windowHeight = window.innerHeight;
}
else {
if (document.documentElement && document.documentElement.clientHeight) {
windowHeight = document.documentElement.clientHeight;
}
else {
if (document.body && document.body.clientHeight) {
windowHeight = document.body.clientHeight;
}
}
}
return windowHeight;
}
function setFooter() {
if (document.getElementById) {
var windowHeight = getWindowHeight();
if (windowHeight > 0) {
if (document.getElementById('left').offsetHeight > document.getElementById('right').offsetHeight)
var partHeight = document.getElementById('left').offsetHeight;
else
var partHeight = document.getElementById('right').offsetHeight;
if (document.getElementById('container').offsetHeight > partHeight)
var contentHeight = document.getElementById('container').offsetHeight;
else
var contentHeight = partHeight;
var contentElement = document.getElementById('container');
if (((windowHeight - 307) - contentHeight) < 0) {
contentElement.style.height = contentHeight + 'px';
}
else {
contentElement.style.height = (windowHeight - 307) + 'px';
}
}
}
}
window.onload = function() {
setFooter();
}
window.onresize = function() {
setFooter();
}
//-->
</script>
</head>
<body>
<div id="top">
</div>
<div id="root">
</div>
<div id="container">
<div id="left"></div>
<div id="right"></div>
</div>
<div id="footer">
</div>
</body>
</html>
ainsi que le code css lié :
html {
margin: 0px;
padding: 0px;
}
body {
margin: 0px;
padding: 0px;
background-image: url(../i/back.jpg);
background-repeat: repeat-y;
background-position: center;
background-color: #EFEFEF;
}
#top {
position: relative;
width: 980px;
height: 186px;
margin: 0px auto;
background-image: url(../i/top.jpg);
background-position: center;
background-repeat: no-repeat;
}
#root {
position: relative;
width: 980px;
height: 91px;
margin: 0px auto;
background-image: url(../i/root.jpg);
background-position: center;
background-repeat: no-repeat;
}
#container {
position: relative;
width: 980px;
height: 483px;
min-height: 483px;
margin: 0px auto;
background-image: url(../i/container.jpg);
background-position: bottom left;
background-repeat: no-repeat;
}
#container #left {
}
#footer {
position: relative;
width: 980px;
height: 30px;
margin: 0px auto;
background-image: url(../i/footer.jpg);
background-position: bottom left;
background-repeat: no-repeat;
}
Les hauteurs désignées pour les différents divs sont en conséquence de la hauteur du background à respecté pour ces parties (elles ne sont pas là par hasard, pour résumé...).
D'habitude, on me dit que je ne suis pas clair du tout mais n'hésitez pas à me le faire savoir si c'est le cas ici aussi .