Lorsqu'un clearfix est utilisé dans un conteneur parent, il entoure automatiquement tous les éléments enfants.
Il est généralement utilisé après des éléments flottants pour effacer la disposition des flottants.
Lorsque la disposition flottante est utilisée, elle aligne horizontalement les éléments enfants. Clearfix supprime ce comportement.
Exemple - Panneaux Bootstrap
Dans bootstrap, lorsque la classe panel est utilisée, il existe 3 types d'enfants : panel-header, panel-body, panel-footer. Tous ont une disposition display:block mais panel-body a un clearfix pré-appliqué. panel-body est un type de conteneur principal, tandis que panel-header et panel-footer n'ont pas vocation à être un conteneur, ils sont juste destinés à contenir du texte de base.
Si des éléments flottants sont ajoutés, le conteneur parent ne s'enroule pas autour de ces éléments car la hauteur des éléments flottants n'est pas héritée par le conteneur parent.
Ainsi, pour le panel-header et le panel-footer, clearfix est nécessaire pour effacer la disposition flottante des éléments : La classe clearfix donne l'impression visuelle que la hauteur du conteneur parent a été augmentée pour accueillir tous ses éléments enfants.
<div class="container">
<div class="panel panel-default">
<div class="panel-footer">
<div class="col-xs-6">
<input type="button" class="btn btn-primary" value="Button1">
<input type="button" class="btn btn-primary" value="Button2">
<input type="button" class="btn btn-primary" value="Button3">
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-footer">
<div class="col-xs-6">
<input type="button" class="btn btn-primary" value="Button1">
<input type="button" class="btn btn-primary" value="Button2">
<input type="button" class="btn btn-primary" value="Button3">
</div>
<div class="clearfix"/>
</div>
</div>
</div>