Mise à jour: En 2014, vous devez utiliser une technique clearfix qui utilise des pseudo-éléments, comme celui mentionné par @RodrigoManguinho. Ceci est la méthode moderne pour effacer les flottants. Pour une méthode encore plus récente, consultez le micro clearfix de Nicholas Gallagher :
/**
* Pour les navigateurs modernes
* 1. Le contenu espace est une façon d'éviter un bug d'Opera lorsque
* l'attribut contenteditable est inclus ailleurs dans le document.
* Sinon, cela provoque un espace en haut et en bas des éléments
* qui sont clearfixed.
* 2. L'utilisation de `table` plutôt que `block` est seulement nécessaire si l'on utilise
* `:before` pour contenir les marges supérieures des éléments enfants.
*/
.cf:before,
.cf:after {
content: " "; /* 1 */
display: table; /* 2 */
}
.cf:after {
clear: both;
}
/**
* Pour IE 6/7 seulement
* Inclure cette règle pour déclencher hasLayout et contenir les flottants.
*/
.cf {
*zoom: 1;
}
Réponse originale:
Je n'aime vraiment pas utiliser du balisage supplémentaire non sémantique, donc j'évite d'utiliser un élément de dégagement. Au lieu de cela, j'applique simplement overflow: hidden;
au parent du flottant(s) pour les effacer. Fonctionne sur tous les navigateurs, aucun problème. Je crois que overflow: auto;
fonctionne également.
Évidemment, cela ne fonctionnera pas si vous souhaitez utiliser une propriété overflow différente, mais en raison du bug de la boîte expansible d'IE6, je n'ai rarement une raison de faire délibérément déborder mes conteneurs.
Voir plus d'informations sur l'utilisation de overflow
au lieu de clear
pour éviter d'ajouter du balisage supplémentaire.
1 votes
Lorsque j'ai lu ce titre, j'ai pensé que cela allait être une question stupide, à laquelle on répondrait par "float f = 0.0". Mes excuses, je n'ai pas encore pris mon café ce matin :-)
0 votes
De toute façon, la réponse à toute question avec "Javascript" et "indépendant du navigateur" est jQuery.
0 votes
@Pax : moi aussi. J'ai édité le titre.
2 votes
@SamSaffron Les liens de votre question pointent vers des pages contenant plusieurs solutions pour effacer les flottants. Il n'est donc pas clair à quelles méthodes vous faites référence... (au fait, je crois que
overflow:auto
sur le parent est la meilleure solution)