Maison >interface Web >tutoriel CSS >Une brève analyse du flottement et du nettoyage en CSS
En tant que front-end, j'ai écrit beaucoup de mises en page, mais le flottant a toujours été un angle mort que je comprends à peine. D'une part, le flottant peut être utilisé pour réaliser de nombreuses mises en page, mais d'autre part. , l'impact du flottement détruira la mise en page et provoquera des maux de tête, donc aujourd'hui, j'écrirai un article de blog pour remédier à cet angle mort.
Cet article aborde principalement les questions suivantes :
1. Le but initial du flottement
2 Pourquoi le flottement a un effet d'habillage du texte
3 Comment nettoyer l'impact du flottement<.>
Supposons qu'il n'y ait pas d'attribut float dans CSS now ( float), à quoi ressemblera-t-il. Nous constaterons que, qu'il s'agisse de la disposition des colonnes ou de la disposition des listes qui est actuellement couramment implémentée à l'aide de la méthode flottante, nous pouvons utiliser d'autres propriétés CSS (indépendamment du tableau) pour l'implémenter. La seule chose qui ne peut pas être implémentée est le "texte entourant les images". ". Je ne vois aucun moyen d'enrouler le texte autour de l'image. Eh bien, ce rôle irremplaçable est la véritable signification de float.Pour résumer en une phrase :
Obtenez l'effet du texte entourant l'image.
Pourquoi le flottant a-t-il un effet d'habillage du texte ?Cette question vient principalement d'impressions passées :Les éléments flottants sont séparés du document couler.Hein ? Si vous êtes hors du flux de documents, ne devrait-il pas chevaucher les éléments non flottants ci-dessous. Pourquoi le texte peut-il toujours vous envelopper ? Ce problème m'a dérangé jusqu'à ce que je voie le livre "Mastering CSS". L'article écrit :
Le flottement entraînera la rupture des éléments du flux de documents et n'affectera plus les éléments non flottants. En fait, pas entièrement. Si l'élément flottant est suivi d'un élément dans le flux documentaire, alorsEn d'autres termes, l'élément flottantla case de cet élément se comportera comme si le flottant n'existait pas du tout . Cependant, le contenu du texte de la zone est affecté par l'élément flottant et se déplace pour libérer de l'espace.
est effectivement hors du flux de documents, donc la zone de bloc dans le flux de documents ignorera l'élément flottant, mais pas le texte . Ceci est différent du positionnement absolu en dehors du flux de documents.
La réponse du senior Zhang Qiuyi sur Zhihu confirme également ce point de vue. Un point supplémentaire : le terme flux de documents est en fait inexact. Dans la norme W3C, il n'y a qu'un flux normal, mais de nombreux articles nationaux et livres traduits utilisent le flux de documents au fil du temps. Comment nettoyer l'impact causé par le flottementEn fait, le principal impact causé par le flottement est1 La hauteur de l'élément parent s'effondre en raison de la rupture de l'élément. du flux normal2. Ci-dessous, les éléments non textuels se chevauchent avec les éléments flottants, détruisant la mise en page originale
1. Le navigateur
ajoute suffisamment de marges au-dessus de l'élément clear pour que la bordure supérieure de l'élément descende verticalement jusqu'au bord extérieur inférieur de l'élément clear. élément flottant en dessous de la distance. 2.
Ajoutez un espace libre au-dessus de la marge supérieure de l'élément clair, tandis que la marge elle-même ne change pas.
1 En ajoutant un élément vide à la fin de l'élément flottant, set clear: les deux attributs, le pseudo-élément after génère en fait un élément de niveau bloc avec un contenu point derrière l'élément via content; 2. Fermez le float en définissant l'attribut overflow ou display: table de l'élément parent.Presque toutes les méthodes de suppression des flotteurs peuvent être classées dans ces deux catégories. Parlons de la méthode d'ajout de pseudo-éléments en conjonction avec l'article de blog ci-dessus :
1.affichage : block , afin que les éléments générés soient affichés en tant qu'éléments de niveau bloc et occupent l'espace restant.
2. Ajoutez un point dans le contenu car ce caractère est très petit.3. Définissez la hauteur sur 0, car vous ne voulez pas que ce nouveau contenu occupe de l'espace et détruise la hauteur de la mise en page.
4. Définissez la visibilité sur masqué pour rendre le contenu généré invisible, permettant aux parties qui peuvent être couvertes par le contenu généré d'être cliquables et interactives.
5.clear : Les deux suppriment les effets du flottement
Le code est le suivant :
.clearfix:after { display: block; content: "."; height: 0; visibility: hidden; clear: both; }
Cet article s'appuie sur d'autres blogs et documents, avec des liens joints :
Liens de référence :
Propriété d'effacement CSS
Flotteur CSS
Comprendre les flotteurs CSS et les flotteurs de compensation
Les flotteurs que nous avons effacés ensemble au cours de ces années
flux noraml
Recherche approfondie, explication détaillée et expansion des flotteurs CSS (1 )
Réponse de Zhang Qiuyi
En tant que front-end, j'ai écrit beaucoup de mises en page, mais le flottant a toujours été un angle mort que je comprends à peine. D'une part, le flottant peut être utilisé pour réaliser de nombreuses mises en page, mais d'autre part. , l'impact du flottement détruira la mise en page et provoquera des maux de tête, donc aujourd'hui, j'écrirai un article de blog pour remédier à cet angle mort.
Cet article aborde principalement les questions suivantes :
1. Le but initial du flottement
Pourquoi le flottement a un effet d'habillage du texte
3 Comment nettoyer l'impact du flottement<.>
Supposons qu'il n'y ait pas d'attribut float dans CSS now ( float), à quoi ressemblera-t-il. Nous constaterons que, qu'il s'agisse de la disposition des colonnes ou de la disposition des listes qui est actuellement couramment implémentée à l'aide de la méthode flottante, nous pouvons utiliser d'autres propriétés CSS (indépendamment du tableau) pour l'implémenter. La seule chose qui ne peut pas être implémentée est le "texte entourant les images". ". Je ne vois aucun moyen d'enrouler le texte autour de l'image. Eh bien, ce rôle irremplaçable est la véritable signification de float.Pour résumer en une phrase :
Obtenez l'effet du texte entourant l'image.
Pourquoi le flottant a-t-il un effet d'habillage du texte ? Cette question vient principalement d'impressions passées :Les éléments flottants sont séparés du document couler.Hein ? Si vous êtes hors du flux de documents, ne devrait-il pas chevaucher les éléments non flottants ci-dessous. Pourquoi le texte peut-il toujours vous envelopper ? Ce problème m'a dérangé jusqu'à ce que je voie le livre "Mastering CSS". L'article écrit :
Le flottement entraînera la sortie des éléments du flux de documents et n'affectera plus les éléments non flottants. En fait, pas entièrement. Si l'élément flottant est suivi d'un élément dans le flux documentaire, alorsEn d'autres termes, l'élément flottantla case de cet élément se comportera comme si le flottant n'existait pas du tout . Cependant, le contenu du texte de la zone est affecté par l'élément flottant et se déplace pour libérer de l'espace.
est effectivement hors du flux de documents, donc la zone de bloc dans le flux de documents ignorera l'élément flottant, mais pas le texte . Ceci est différent du positionnement absolu en dehors du flux de documents.
La réponse du senior Zhang Qiuyi sur Zhihu confirme également ce point de vue. Un point supplémentaire : le terme flux de documents est en fait inexact. Dans la norme W3C, il n'y a qu'un flux normal, mais de nombreux articles nationaux et livres traduits utilisent le flux de documents au fil du temps. Comment nettoyer l'impact causé par le flottementEn fait, le principal impact causé par le flottement est1 La hauteur de l'élément parent s'effondre en raison de la rupture de l'élément. du flux normal2. Ci-dessous, les éléments non textuels se chevauchent avec les éléments flottants, détruisant la mise en page originale
1. Le navigateur
ajoute suffisamment de marges au-dessus de l'élément clear pour que la bordure supérieure de l'élément descende verticalement jusqu'au bord extérieur inférieur de l'élément clear. élément flottant en dessous de la distance. 2.
Ajoutez un espace libre au-dessus de la marge supérieure de l'élément clair, tandis que la marge elle-même ne change pas.
1 En ajoutant un élément vide à la fin de l'élément flottant, set clear: les deux attributs, le pseudo-élément after génère en fait un élément de niveau bloc avec un contenu de points derrière l'élément via content; 2. Fermez le float en définissant l'attribut overflow ou display: table de l'élément parent.Presque toutes les méthodes de suppression des flotteurs peuvent être classées dans ces deux catégories. Parlons de la méthode d'ajout de pseudo-éléments en conjonction avec l'article de blog ci-dessus :
1.affichage : block , afin que les éléments générés soient affichés en tant qu'éléments de niveau bloc et occupent l'espace restant.
2. Ajoutez un point dans le contenu car ce caractère est très petit.3. Définissez la hauteur sur 0, car vous ne voulez pas que ce nouveau contenu occupe de l'espace et détruise la hauteur de la mise en page.
4. Définissez la visibilité sur masqué pour rendre le contenu généré invisible, permettant aux parties qui peuvent être couvertes par le contenu généré d'être cliquables et interactives.
5.clear : Les deux suppriment les effets du flottement
Le code est le suivant :
.clearfix:after { display: block; content: "."; height: 0; visibility: hidden; clear: both; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!