Div effondrement après float css
J'ai un div appelé valeur liquidative et à l'intérieur de la valeur liquidative j'ai un UL avec 5 li lequel je flotte vers la gauche, le li qui est, mais quand je le fais, que la valeur liquidative s'effondre. Je le sais parce que j'ai mis une bordure autour de NAV pour voir si ça s'effondre et il le fait. Voici l'exemple.
s'est effondré http://img401.imageshack.us/img401/8867/collapsedze4.png
pas effondré http://img71.imageshack.us/img71/879/nocollapsedkx7.png
comme vous pouvez le voir sur la première image, les liens de la valeur liquidative div sont flottaient à gauche et qu'
bordure noire ontop est le div appelé NAV.
dans cette image, vous pouvez voir comment il a bordure supérieure et inférieure, et il ne s'est effondré.
voici le code html et css que j'ai utilisé.
le texte d'alt http://img301.imageshack.us/img301/5514/codejc8.png
#nav #ulListNavi a {
float: left;
}
- Où est la question? Je n'ai pas trouvé de point d'interrogation et n'a pas compris votre question, si il y en a un.
- Alors que j'ai eu la réponse que j'ai besoin de cette "question", je le trouve difficile à lire.
Vous devez vous connecter pour publier un commentaire.
Ajouter tout
overflow
valeur autre quevisible
à votre conteneur:Puis ajouter
width
pour restaurer la largeurUne solution consiste à ajouter un "clear:both" style à un élément après le dernier flottait ancre, par exemple:
Cela provoque l'contenant l'élément à effacer tous les éléments flottants avant de fermer la boîte contenant.
Un peu d'autres options pour la compensation des flotteurs ici:
http://www.quirksmode.org/css/clearing.html
http://www.sitepoint.com/blogs/2005/02/26/simple-clearing-of-floats/
Quant à la meilleure façon de le faire, c'est presque une guerre sainte, les puristes freak sur les extra div, si vous n'êtes pas peur d'un peu plus de balisage, l'ajout de la zone dégagée div comme suggéré par Josué et AJ fonctionnera très bien, et est une technique fiable, mais il y a au moins 17 autres façons de le faire...
ajoutez le code suivant après votre ul:
Essayer le flottant contenant l'élément à gauche.
Ne vous embêtez pas avec la compensation d'éléments ou de débordement. Ajouter cette:
Lorsque vous flotter le LI, le #nav plus "contient" rien, alors qu'il s'effondre. Mais si le #nav est proposé également, elle contient tout ce flottait à l'intérieur, il élargit de nouveau.
(Également envisager de retirer le #nav div et de se contenter d'appliquer les mêmes styles à l'UL.)
Votre problème est que vous êtes flottant le
<A>
éléments, mais chacun d'eux est à l'intérieur d'un<LI>
élément.LI
s afficher comme des blocs par défaut, de sorte que chaque<LI>
est de forcer l'enfant<A>
pour commencer sur une nouvelle ligne.Si vous flotter le
<LI>
s, je pense que vous aurez à résoudre votre problème.La solution la plus rapide serait d'ajouter overflow:hidden pour effacer le flotteur sur l'élément parent:
Sans changer votre code HTML:
Travaille dans IE8 et FF 3.5