2010-06-24 6 views
0

J'ai un ensemble d'éléments <li> dans une liste non ordonnée. Les objets sont tous flottants à gauche, avec un peu d'espace entre eux. Le problème est, le dernier élément de liste est enveloppé (n'est pas à la fin de la liste, mais à gauche sur une nouvelle ligne). Je ne sais pas pourquoi. Le rendu est très bien avec Mac Safari et IE 7.Firefox (3.6.3 Mac) ne peut pas flotter à gauche le dernier d'un ensemble d'éléments de liste flottant à gauche

Le CSS pour les éléments li les flotteurs gauche:

list-style: none; 
float: left; 
padding: 1px 1px 0 1px; 
margin-right: 1px; 
border: 1px solid #2A3139; /* to hold space for hover border */ 

Une autre factoid: la liste non ordonnée est dans un div (à des fins clipping; la liste est défilé horizontalement); le CSS pour la <ul> spécifie:

overflow: none; 
position: relative; 

(bien que je ne pense pas que cela est lié au problème ... mais on ne sait jamais)

+0

oups, bad CSS: J'ai corrigé le "débordement" pour être "débordement: caché" ... mais cela n'a pas réglé le problème – Zhami

+0

s'il s'agit d'une barre de navigation et que vous allez avoir des menus déroulants pour chaque article, alors vous devez jouer avec le positionnement, sinon vous n'avez pas besoin de définir une position, Aussi, vous avez seulement besoin d'appliquer le "style de liste: aucun" à la balise "ul" et non le "li". – jnkrois

Répondre

1

est la largeur de votre conteneur div assez large pour accommoder la largeur de tous vos éléments li PLUS leurs marges et bordures? Si ce n'est pas le cas, les flotteurs s'enrouleront à la ligne suivante s'il n'y a pas assez d'espace.

+0

Oui, je calcule la largeur en tenant compte des marges, du remplissage et de la bordure. Mais j'ai senti que vous étiez sur quelque chose, et donc j'ai ajouté un facteur de fudge - l'ajout de 2 pixels a fait ce travail pour Firefox (il a rendu correctement sans le facteur fudge sur Safari et IE). (btw: c'est l'élément contenant la liste (OL/UL), pas div, qui en a besoin) – Zhami

+0

Content que vous ayez trouvé la réponse. UL/OL sont des éléments en ligne par défaut et donc la largeur n'est généralement pas un facteur sauf si vous définissez explicitement l'affichage à bloquer ou à bloquer en ligne. Je suppose que la raison pour laquelle vous n'obtenez pas l'erreur dans IE est parce que les anciennes versions d'IE calculent incorrectement la largeur d'un élément pour être la somme de la largeur, du remplissage et des bordures. – edl

Questions connexes