2010-04-23 5 views
3

Je veux positionner 4 divs l'un à côté de l'autre, à une certaine position dans la div parente. Ainsi, la structure div est ce (je vais appeler le plus haut sommet div la maindiv):comment aligner 4 DIV à droite l'un de l'autre dans un autre DIV

<div> 
    <div>1</div> 
    <div>2</div> 
    <div>3</div> 
    <div>4</div> 
</div> 

maintenant je veux mettre div avec le texte '1' à gauche dans la maindiv

maintenant i voulez mettre div avec le texte « 2 » à 50 px du côté gauche dans la maindiv

maintenant je veux mettre div avec le texte « 3 » à 150 px du côté gauche dans la maindiv

maintenant i vouloir définir div avec le texte '4' à 200 px du côté gauche dans le maindiv

Je pense :-) J'ai essayé TOUTES les constructions css possibles, mais cela n'a pas fonctionné, malheureusement.

Quelqu'un a une idée?

Répondre

11

Donnez position: relative au principal div

position: absolute aux enfants et positionner les utiliser left: xyz; top: xyz.

+0

s'il vous plaît, s'il vous plaît dites-moi ... pourquoi cela fonctionne (parce que c'est le cas!) il est dans le 'relatif', parce que quand je supprime cela, les divs internes sont placés en haut de la page. Je suis en colère contre un pge avec une table et sous cette div avec les innerdivs, et tout va bien. Je peux copier coller le div/innerdivs et ils semblent corrects aussi. Mais quand je supprime la 'position: relative', les facesd vis (pas les externes !!) sont placées en haut de ma page (Ie8 et FF3). Cela, mon cher monsieur, ne peut pas être compris par moi :). Pouvez-vous expliquer pourquoi ce comportement existe? pour être clair: la réponse est correcte, je veux juste comprendre pourquoi. – Michel

+3

@Michel éléments absolument positionnés sont toujours positionnés par rapport à * l'élément parent suivant * avec soit «position: relative» ou «position: absolute» (et je pense, aussi 'position: fixed'). Théorie de base ici: http://www.w3.org/TR/CSS2/visuren.html#absolute-positioning si la div parent n'est pas 'position: relative', le positionnement absolu est relatif à l'élément le plus haut, le corps. Ainsi, 'left: 50px' signifiera en fait 50 pixels du coin gauche du document. –

+0

Merci beaucoup très pour votre commentaire. – Michel

1

Espoir cela vous aidera

   <div> 
        <div style="float: left;">1</div> 
        <div style="float: left; margin-left: 50px;">2</div> 
        <div style="float: left; margin-left: 100px;">3</div> 
        <div style="float: left;margin-left: 50px;">4</div> 
       </div> 
+0

un peu, mais pas exactement. – Michel

1

essayez ceci:

div div 
     { 
      float:left; 
      margin-left:50px; 
     } 

EDIT: comme dans: Fix pour le parent:

div 
{ 
    float:left; 
    margin-left:-50px; 
} 
div div 
{ 
    float:left; 
    margin-left:50px; 
} 
+0

NOTE: cela déplace également le premier enfant div, donc vous pouvez mettre une marge de -50px sur le parent si c'est un problème. –

Questions connexes