Html =>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<div style='border: 1px solid red; width: 100px;'>
<a href="#">foo</a>
<a href="#"style="border-color: blue; float: right;">bar</a>
</div>
something
</body>
</html>
J'ai eu des problèmes avec IE7 (le support IE6 n'est pas nécessaire)
Sur IE7, le rendu HTML ressemble à ceci =>
alt text http://i48.tinypic.com/saxs9d.jpg
J'ai besoin qu'il ressemble à ceci (fonctionne sur chrome/ie8 pour le moment) =>
alt text http://i49.tinypic.com/2ufgbr4.jpg
Que devrais-je changer? :)
Vous devez faire flotter les deux éléments et les effacer.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<div style="border: 1px solid red; width: 100px;">
<a href="#" style="border-color: blue; float: right;">bar</a>
<a href="#" style="float:left;">foo</a>
<div style="clear:both;"></div>
</div>
something
</body>
</html>
Ou simplement, placez l'élément flottant devant l'élément normal comme ceci:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<div style="border: 1px solid red; width: 100px;">
<a href="#" style="border-color: blue; float: right;">bar</a>
<a href="#">foo</a>
</div>
something
</body>
</html>
Pardonnez mon anglais et mon dessin, mais voici brièvement comment fonctionnent les fonctions float et clearing dans le navigateur croisé:
Un élément peut être flotté à gauche ou à droite. Lorsque l'élément est flottant, il ne pousse pas le contenu "normal" vers le bas. Voyez pourquoi -
Flotter et clair:
Légende: Orange/Float Right, Bleu/Float Left, Lignes grises/Diviseur transparent, Rect Rouge/Délimités
Dans ce cas, vous avez 2 éléments d'un texte de ligne, l'un flottant à gauche et l'autre flottant à droite. En flottant, il ne pousse pas le contenu vers le bas, c'est-à-dire qu'il prend de la place. Ainsi, si vous n'utilisez pas clear:both
au niveau des lignes grises, le contenu ci-dessous s'empilera vers le haut entre les 2 éléments flottants et risque donc de ne pas être ce que vous voulez.
Lorsque vous utilisez clear:both
sous les flottants, le contenu situé sous les flottants est poussé aussi loin que l’un des éléments les plus hauts. Ceci est montré dans les 2ème et 3ème sections du diagramme.
Flotter seulement:
Légende: Orange/Float Right, contenu bleu/normal, lignes grises/la ligne divisée par la suivante, Red Rect/bounds
Le contenu bleu normal est déjà par défaut text-align: left;
. Ainsi, il est orienté à gauche. Vous devez avoir le flottant devant le contenu normal, car vous indiquez au navigateur de flotter à partir de cette ligne.
Vous devriez expérimenter différentes conditions pour voir son effet: mettre un flotteur devant, derrière, un flotteur à droite, clair à la fois, clair à droite et à gauche.
Toujours utile pour tous les combos IE-Float: Donner display: inline;
à chaque élément float
Essayez le clear after fix:
div:after {
clear: both;
content: ".";
display: block;
height: 0;
visibility: hidden;
}