2010-12-01 3 views
0

Comment mettre la hauteur d'un div qui contient d'autres avec la position absolue?Comment mettre la hauteur d'un div qui contient d'autres avec la position absolue?

<html> 
<head> 
<style type="text/css"> 
.a{ 

} 
.b{ 
position:relative; 
} 
.c{ 
position:absolute; 
} 
</style> 
</head> 

<body> 

<div class="a"> 
<div class="b"> 
<div class="c"> 
    ESTO ES LO QUE CONTIENE EL DIV<br/> 
    ESTO ES LO QUE CONTIENE EL DIV<br/> 
    ESTO ES LO QUE CONTIENE EL DIV<br/> 
    ESTO ES LO QUE CONTIENE EL DIV<br/> 
</div> 
</div> 
</div> 


</body> 

</html> 

La hauteur de la div class "a" est égal à zéro

+0

Pourquoi 'c' doit-il absolument être positionné? Si vous modifiez sa position (c'est-à-dire modifiez ses styles 'top' et' left'), attendez-vous que 'a' et' b' changent de taille et/ou de position? – Emmett

Répondre

2

Un élément en position absolue ne prend pas de place dans la mise en page, ce qui signifie que <div class='a'> ne développerai pas l'envelopper. La seule façon de le faire est de mesurer la hauteur de .c via javascript et de définir explicitement la hauteur de .a - l'inconvénient, bien sûr, est d'avoir javascript pour cela. Selon l'endroit où vous essayez de positionner .c, vous pouvez envisager d'utiliser un flotteur, qui peut être enveloppé.

+0

On dirait qu'il a besoin d'éléments flottants. Utiliser JS va être un gros mal de tête ... –

0

il ne sera pas si vous donnez DIV B une hauteur inférieure à DIV C, parce que DIV C peut enroulent plus son récipient.

désolé si je n'ai pas la bonne question

0

A <div> ou tout autre conteneur de bloc se développera automatiquement en fonction verticalement au contenu, mais une fois que vous position:absolute toute <div>, vous retirez de son contenu parent et ne fait plus son parent se développe.

Vous pouvez essayer de faire flotter le <div class="c"> au lieu de le positionner absolument. De cette façon, la div continuera à faire partie de son contenu parent, bien que vous deviez définir le <div class="a"> à overflow:auto afin de le faire développer sur les éléments flottants.

Questions connexes