2010-01-17 6 views
2

je le code suivant:inline-block bousille avec le positionnement relatif

<HTML> 
<head> 
<style>div{border:dashed 1px silver}</style> 
</head> 
<BODY style="background: #fff;"> 

<div style="position: absolute; background: #0f0; width: 256px; height: 96px; overflow: scroll;"> 

<DIV style=" display: inline-block;position: relative;top: 64px; left: 32px;"> 
<DIV style="width: 18px; height: 14px; float: left; background: #f00;"></DIV> 
<DIV style="float: left">First</DIV> 
<div style="clear: both;"></div></DIV> 

<DIV style=" display: inline-block;position: relative;top: 96px; left: 32px;"> 
<DIV style="width: 18px; height: 14px; float: left; background: #0f0;"></DIV> 
<DIV style="float: left">Second</DIV><div style="clear: both;"></div></DIV> 

</div> 

</BODY> 
</HTML> 

La deuxième div n'est pas positionné sur le 32 x position, sauf si je supprimer l'affichage: la propriété inline-block, dont j'ai besoin . Y a-t-il un moyen de contourner ceci?

Editer: cela semble fonctionner si je supprime l'affichage: inline-block, mais alors les barres de défilement apparaîtront horizontalement (comme le div prend un espace invisible).

Répondre

1

Vous devez utiliser la manière dont les éléments position:absolute sont affichés à l'intérieur de position:relative.
En outre, pour éviter la barre de défilement horizontale, utilisez overflow-y.

Exemple de travail: http://jsbin.com/uveni3

+0

Essayez d'exécuter le code, vous verrez deux éléments où le second est * pas * positionné sur x: 32; même si je l'ai mis là comme ça. – Tower

+0

Oh, mais j'ai fait: http://jsbin.com/aqoju. Pouvez-vous montrer une image ou un site similaire à ce que vous essayez d'atteindre? – Kobi

+0

Oui, mais je ne peux pas utiliser le positionnement absolu comme ça ... essayez la version modifiée que j'ai sur mon poste. – Tower

0

Lors de l'utilisation des propriétés "inline-block", vous devez toujours commencer votre balise d'ouverture HTML dans un format DTD. en placer un là devrait résoudre cela.

Questions connexes