J'ai une mise en page centrée en utilisant margin:0 auto;
, mais un de mes divs enfants ne se positionne pas absolument (par rapport à son parent). La page semble bien jusqu'à ce que la fenêtre est redimensionnée. Ensuite, le div enfant est poussé vers la droite et l'image du haut (dans une autre div) est tronquée.Comment puis-je faire une position: absolue; div à l'intérieur d'une position: relative; div travailler dans une mise en page centrée par marge: 0 auto ;?
De quels changements de code ai-je besoin?
Voici le CSS:
body {
padding: 0;
margin: 0;
display: table;
text-align: center;
font-family:sans-serif;
background: #FFF url("/images/businessmanbg.jpg") no-repeat center top;
width: 100%;
}
#wrapper {
margin: 0 auto;
position: relative;
}
#container {
margin: 0 auto;
text-align: left;
position: relative;
}
#topbar {
background: #036 url("/images/topbar.jpg") no-repeat center top;
border:0;
position: relative;
margin-top: -22px;
padding:0;
text-indent:-9999px;
display: block;
height: 111px;
width: 100%;
}
#content {
background: url("/images/copy-bg.png");
padding: 10px;
position: absolute;
margin-left: 900px;
margin-top: 50px;
text-align: left;
width: 450px;
}
Merci pour votre aide!
EDIT (2:18 PM CDT): À la suggestion de quelqu'un d'autre, j'ai déplacé l'arrière-plan de l'homme d'affaires vers #container, ajouté une largeur fixe à #container et ajouté les positions haut et droit à #content. On dirait que le positionnement est correct, mais l'image de fond a disparu. Une idée pourquoi?
L'exemple ci-dessus a été mis à jour avec le CSS suivant (et je supprimé l'emballage DIV dans le HTML):
body {
padding: 0;
margin: 0;
display: table;
text-align: center;
font-family:sans-serif;
width: 100%;
}
#container {
margin: 0 auto;
text-align: left;
position: relative;
background: url("/images/businessmanbg.jpg") no-repeat center top;
width: 1280px;
z-index: 1;
}
#topbar {
background: #036 url("/images/topbar.jpg") no-repeat center top;
border:0;
position: absolute;
top: 0px;
left: 0px;
padding:0;
text-indent:-9999px;
display: block;
height: 111px;
width: 100%;
z-index: 2;
}
#content {
background: url("/images/copy-bg.png") repeat scroll 0 0 transparent;
padding: 10px;
position: absolute;
top:120px;
right:200px;
width: 450px;
z-index: 3;
}
ul, li, p {
font-size: .95em;
line-height: 1.5em;
}
L'image n'apparaît pas parce que vous êtes #container et votre corps ont tous les deux pas de hauteur. Comme vous avez positionné les éléments enfants absolument leurs dimensions n'ont plus aucun effet sur leurs éléments parents ou frères. Je ne pense pas que le positionnement soit le moyen pour vous d'obtenir l'effet que vous voulez. Découvrez cet exemple - Je l'ai seulement regardé en chrome, mais il devrait aider: http://jsbin.com/ahike4/ – lnrbob
Wow c'est parfait! Merci de le simplifier en supprimant le positionnement et en ajoutant simplement margin-left à #content. Beaucoup plus propre maintenant! – Leslie