La compréhension de Bootstrap est clearfix classe
.clearfix {
*zoom: 1;
&:before,
&:after {
display: table;
content: "";
//Fixes Opera/contenteditable bug:
//http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952
line-height: 0;
}
&:after {
clear: both;
}
}
- Pourquoi ne pas utiliser
display:block
? - En plus, pourquoi est-il aussi s'appliquer à la
::before
pseudoclass?
Vous devez vous connecter pour publier un commentaire.
.clearfix
est défini dansmoins d'/mixin.moins
. Juste au-dessus de sa définition est un commentaire avec un lien vers cet article:Un nouveau micro-clearfix hack
L'article explique comment tout cela fonctionne.
Mise à JOUR: Oui, lien-seulement les réponses sont mauvaises. Je le savais déjà à l'époque que j'ai posté cette réponse, mais je n'ai pas envie de copier et de coller était OK en raison du droit d'auteur, le plagiat, et ce que vous avez. Cependant, j'ai maintenant l'impression que c'est OK car j'ai lié à l'article original. Je tiens également à mentionner le nom de l'auteur, bien que, par le crédit: Nicolas Gallagher. Ici est la viande de l'article (à noter que "Thierry la méthode du" fait référence Thierry Coblence du “clearfix reloaded”):
La
:before
pseudo élément n'est pas nécessaire pour le clearfix hack lui-même.C'est juste un supplément de nice fonctionnalité aider à empêcher la marge de l'effondrement du premier enfant de l'élément. Ainsi, la marge du haut d'un enfant bloquer l'élément de la "clearfixed" élément est garanti pour être positionné au-dessous de la bordure supérieure de la clearfixed élément.
display:table
est utilisée en raisondisplay:block
ne pas faire l'affaire. À l'aide dedisplay:block
marges s'effondrer, même avec un:before
élément.Il y a une mise en garde: si
vertical-align:baseline
est utilisé dans les cellules de tableau avec clearfixed<div>
éléments, Firefox ne s'harmonisent parfaitement. Ensuite, vous pourriez préférer utiliserdisplay:block
en dépit de perdre de l'anti-effondrement de la fonctionnalité. En cas de poursuite de l'intérêt de lire cet article: Clearfix interférant avec vertical-align.Lorsqu'un clearfix est utilisé dans un conteneur parent, il s'entoure de tous les éléments d'enfant.
Il est généralement utilisée après les éléments flottants pour effacer le flotteur de mise en page.
Lorsque le flotteur de mise en page est utilisé, il doit aligner horizontalement les éléments d'enfant.
Clearfix efface ce comportement.
Exemple - Bootstrap Panneaux
Dans le bootstrap, lorsque la classe est utilisée, il y a 3 types enfants: panneau d'en-tête, panneau de corps, panneau de pied de page.
Tous ont display:block mise en page, mais le panneau de corps a un clearfix pré-appliquée.
panneau de corps est l'un des principaux type de conteneur alors que le panneau d'en-tête & panneau de pied de page n'est pas destiné à être un conteneur, il est juste destiné à contenir un texte de base.
Si les éléments flottants sont ajoutés, le conteneur parent ne s'enrouler autour de ces éléments en raison de la hauteur des éléments flottants n'est pas héritée par le conteneur parent.
Donc pour le panneau d'en-tête & panneau de pied de page, clearfix est nécessaire pour effacer le flotteur disposition des éléments:
Clearfix classe donne un aspect visuel à la hauteur du conteneur parent a été augmenté pour tenir compte de tous ses éléments enfants.