2009-12-04 7 views
1

Il est parent bloc:html - Problèmes avec divs

#content 
{ 
position: relative; 
width: 92%; 
margin: 0 auto; 
height: 100%; 
min-height: 500px; 
border: 1px solid red; 
} 

Et je besoin de 2 blocs en elle:

#news 
{ 
position: relative; 
float: left; 
min-height: 400px; 
width: 290px; 
height: 100%; 
} 
#text 
{ 
position: relative; 
float: left; 
margin-left: 20px; 
min-height: 400px; 
width: 625px; 
height: 100%; 
} 
 <div id="content"> 
      <div id="news"> 
       ... 
      </div> 
      <div id="text"> 
       ... 
      </div> 
     </div> 

Mais 2e bloc de texte n'est pas en une ligne avec nouvelles. Et, après avoir redimensionné les nouvelles et le bloc de texte, le bloc de contenu devrait également être redimensionné, mais ce n'est pas le cas ... Pourquoi?

Répondre

2

C'est parce que les deux divs dans #content sont flottantes, les sortant du flux de document normal. Sur #content, changez height: 100%; en overflow: hidden; - cela devrait lui permettre d'accueillir les éléments flottants à l'intérieur.

+0

débordement: masqué; C'est exactement ce que j'ai besoin de hauteur et de divs flottants, mais pourriez-vous regarder à nouveau cette page, maintenant le bloc de contenu a changé sa position, pourquoi? – Ockonal

+0

On dirait que le positionnement relatif sur votre div # head_float_layer est à l'origine maintenant que #content est correctement positionné. Essayez de remplacer #head_float_layer par: #head_float_layer { background-image: url (../ images/head_layer.png); hauteur: 336px; marge: 0; remplissage: 0; position: absolue; droite: 100px; en haut: 0; largeur: 448px; z-index: 9999; } Vous aurez besoin d'ajouter autant de marge que nécessaire en haut de #text si vous ne voulez pas que l'image se chevauche tellement ... –

+0

Merci beaucoup! Je ne pensais pas que ce problème était dû à head_float_layer. J'ai résolu mon problème! – Ockonal

0

Vous devrez peut-être ajouter:

display:inline; 

aux divs.

Vérifiez également qu'il y a suffisamment d'espace dans la div parente. Chaque navigateur calcule différemment. C'est-à-dire, pour que les deux div apparaissent côte à côte, il faut suffisamment d'espace pour représenter leurs largeurs et leurs marges.