Comportement de débordement dans CSS2.1 : établissement de nouveaux contextes de formatage de bloc
Dans CSS2.1, la spécification exige que toute valeur de débordement autre que "visible" établit un nouveau contexte de formatage de bloc (BFC). Cette décision a soulevé des questions sur la justification de la fusion de deux fonctionnalités apparemment sans rapport : la création de BFC et la dissimulation des débordements.
Raison d'être de l'établissement de BFC avec débordement non visible
La principale La raison de ce comportement réside dans la nécessité d'assurer un défilement fluide dans certains scénarios. Lorsqu'un conteneur avec un contenu débordant peut défiler, permettre aux flotteurs de croiser ce contenu nécessiterait que le navigateur réenroule constamment le contenu autour des flotteurs pendant que l'utilisateur fait défiler. Ce processus de réemballage aurait un impact considérable sur les performances de défilement.
Effet sur la mise en page pour un débordement non visible
Lorsqu'un élément avec un débordement non visible établit un BFC, l'élément entier est mis de côté pour laisser la place à tous les éléments flottants dans le même contexte de formatage de bloc. Ce comportement empêche le chevauchement de la zone de bordure de l'élément avec les zones de marge des flottants, garantissant ainsi une disposition correcte.
Élongation des éléments avec hauteur : débordement automatique et non visible
CSS2.1 a introduit un changement supplémentaire selon lequel un élément avec height: auto et un débordement non visible s'étirera verticalement pour correspondre à la hauteur de ses flotteurs. Ce changement permet à ces éléments de contenir entièrement leur contenu flottant sans coupure.
Exceptions au comportement de débordement
Malgré la règle générale d'établissement d'un nouveau BFC avec débordement non visible , il y a des exceptions :
Conclusion
La décision d'établir de nouveaux contextes de formatage de bloc avec des valeurs de débordement non visibles dans CSS2.1 était principalement motivée par la nécessité d'améliorer performances de défilement et assurer une mise en page cohérente en présence de flotteurs. Ce comportement, ainsi que le changement supplémentaire concernant les éléments avec hauteur : débordement automatique et non visible, fournit un modèle de disposition plus robuste et prévisible.
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!