28172 sujets

CSS et mise en forme, CSS3

Pages :
(reprise du message précédent)

darkstar2023 a écrit :
Et effectivement, on joue sur l'alignement vertical avec position:relative; et non absolute (sinon l'élément se place selon body donc l'écran d'ordi).
C'est juste que tu n'as pas bien compris la notion de premier ancêtre positionné. Un petit exemple :
<!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="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Test</title>
<style type="text/css" media="screen">
#bloc1 {
	width: 600px;
	background: yellow;
	height: 400px;
	margin: 20px auto;
}

#bloc2 {
	position: relative;
	width: 400px;
	background: blue;
	height: 200px;
	float: right;
}

#bloc3 {
	width: 100px;
	background: red;
	height: 100px;
	position: absolute;
	bottom: 0;
	right: 0;
}
</style>
</head>
<body>
<div id="bloc1">
	<div id="bloc2">
		<div id="bloc3">
			<p>Loremp Ipsum</p>
		</div>
	</div>
</div>
</body>
</html>
Le DIV #bloc3 se positionne par rapport à son premier ancêtre positionné qui est le DIV #bloc2.

En l'occurrence le positionnement relatif seul peut poser problème car la place qu'aurait normalement occupée le bloc dans le flux est conservée et peut générer des décalages. Cela dit le positionnement absolu peut lui aussi poser problème comme cela est expliqué dans les tutos.
AAAHHHH j'ai compris, en fait il faut spécifier position: relative à l'élément parent, sinon le DIV enfant se positionne par rapport au document entier !

Au moins j'en ai le cœur net maintenant.

Mais finalement je n'utiliserai pas, même si c'est intéressant.
Les position absolues risquent de masquer les autres contenus importants, donc je reste aux float.
Mais ma question a été tout de même résolue.

Merci 1 000 fois
Modifié par darkstar2023 (05 Oct 2009 - 22:05)
darkstar2023 a écrit :
C'est bizarre...
Pas vraiment puisque le bloc dont tu voudrais te servir comme référence (le DIV #support) n'est pas positionné : il suffit de lui rajouter position:relative;


Edit: ah ben on s'est croisés...
Modifié par Heyoan (05 Oct 2009 - 22:01)
Pages :