28173 sujets

CSS et mise en forme, CSS3

Bonjour,

j'uitlise le hack suivant pour qu'internet explorer simule la position fixed d'un élément sur la page:

div#left {
	width: 200px;
	padding-top: 50px;
	position: fixed;
	left:200px;
	top:0;
	_position:absolute;
	_top:expression(documentElement.scrollTop+body.scrollTop);
}


Quand la boite "left" est placée comme un enfant direct de <body> ça fonctionne, mais si la boite est placée plus profondément dans la structure y'a pas moyen... dans mon cas:

<body>
	<div id="main1">
		<div id="main2">
			<div id="main3">
				<div id="global1">
					<div id="global2">
						<div id="left">
							là !
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</body>


La petite question subsidiare comme promis et qui n'a rien à voir avec le problème précédent Smiley biggol :

Est ce qu'il y a moyen de masquer complètement l'ascenseur vertical dans IE? ... Celui qui est inactif quand le contenu est plus court que la zone de navigation, au lieu de disparaître complètement...

Merci de votre aide!
Modifié par SuD (18 May 2007 - 14:43)
Bonjour,

Pourquoi ne pas mettre l'élément dirrectement dans body puisque il est en position fixed ça ne change pas grand chose... Je trouve que tu as une scrée profondeur dans tes divs imbriquées quand même !

Si tu tiens à garder ton élément là pour des raison de structure ou autre, il y a toujours maoyen de fair un fix en javascript genre :


try{
 window.attachEvent('onload',function(){
  var left = document.getElementById('left');
  document.body.appendChild(left.parenNode.removeChild(left));
  document.recalc(true);
 }
}
catch(e){}


les navigateur non IE ne conaissent pas attachEvent et ne feront donc rien.
document.recalc(true) force internet explorer à recalculer toutes ses expressions au cas où l'élément se retrouverait en bas de la page.

Pour masquer l'ascenseur c'est simlement
 html { overflow: hidden } 
peut être aussi sur body pour les anciennes versions.
Attention le overflow:hidden masque aussi l'ascenseur dans le cas où le contenu dépasse de la page. Donc il ne sera plus possible de lire la fin de la page.