Maison >interface Web >tutoriel CSS >Pourquoi CSS2.1 utilise-t-il « overflow » autre que « visible » pour créer des contextes de formatage de bloc ?

Pourquoi CSS2.1 utilise-t-il « overflow » autre que « visible » pour créer des contextes de formatage de bloc ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-07 18:10:23723parcourir

Why Does CSS2.1 Use `overflow` Other Than

Pourquoi CSS2.1 impose-t-il des valeurs de débordement autres que « Visible » pour établir un nouveau contexte de formatage de bloc ?

Dans CSS2.1, des valeurs de débordement autres que « visible » sont spécifiées pour créer un nouveau « contexte de formatage de bloc ». Cette décision a soulevé des questions sur la justification de la combinaison de deux fonctionnalités apparemment sans rapport : la création d'un contexte de formatage de bloc (BFC) et la suppression du débordement.

Contexte historique et considérations clés

Selon les demandes effectuées sur la liste de diffusion CSS, cette décision découle de la nécessité de gérer le défilement dans les cases qui croisent les flottants. La spécification CSS 2.0 d'origine imposait aux navigateurs de réemballer le contenu autour des flottants intrusifs pendant le défilement, provoquant des problèmes de performances.

L'amendement CSS2.1 empêche ce réemballage en établissant un nouveau BFC pour les valeurs de débordement autres que "visible". Cela garantit que :

  • Le contenu du nouveau BFC n'est pas affecté par les flottants.
  • Le comportement de défilement du BFC n'est pas affecté par la présence de flottants.

Exemple

Considérez ce qui suit exemple :

<div>...</div>
<div>
  ...:
  ...:
</div>
div {
  height: 80px;
}

div:first-child:before {
  float: left;
  height: 100px;
  margin: 10px;
  content: 'Float';
}

En CSS 2.0, avec overflow : visible (par défaut), la deuxième case chevauche l'élément flottant. Cependant, avec overflow: auto (CSS 2.1), la deuxième boîte gagne un nouveau BFC, empêchant le float d'intersecter son contenu.

Implications du débordement : caché

Même si overflow: Hidden masque généralement le contenu débordant, il permet toujours le défilement programmatique. Ceci est important car les boîtes avec overflow: Hidden qui contiennent des flottants qui se croisent doivent également établir un nouveau BFC pour empêcher le réemballage pendant le défilement.

Modifications introduites dans CSS2.1

CSS2 .1 introduit des modifications supplémentaires :

  • Bloquer les éléments racine du contexte de formatage (éléments avec les valeurs de débordement autres que "visible") s'étendent désormais verticalement jusqu'à la hauteur de leurs flottants.
  • Les boîtes avec overflow: Hidden et height: auto sont limitées par les limites de leur conteneur et ne peuvent plus croiser les flottants.

Cohérence et Performance

En fin de compte, la décision de créer un nouveau BFC pour les valeurs de débordement autres que « visible » était principalement motivée par des considérations de performances et un désir de cohérence dans la gestion du contenu débordant. Cette approche optimise les performances de défilement et maintient une mise en page 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn