Maison > interface Web > tutoriel HTML > le corps du texte

Pourquoi l'attribut de débordement ne fonctionne pas lorsque la compensation du flotteur n'est pas valide, analyse des raisons

WBOY
Libérer: 2024-01-27 10:35:06
original
1285 Les gens l'ont consulté

Pourquoi lattribut de débordement ne fonctionne pas lorsque la compensation du flotteur nest pas valide, analyse des raisons

Pourquoi l'attribut overflow n'est pas valide pour la suppression des flottants ? L'analyse des raisons nécessite des exemples de code spécifiques

Float (float) est l'une des méthodes de mise en page couramment utilisées en CSS. Sa fonction est de retirer l'élément du flux de documents et. lui permettre de flotter sur son parent Le côté gauche ou droit de l'élément. Cependant, les éléments flottants peuvent entraîner certains problèmes de mise en page. L'un d'eux est que les éléments flottants ne peuvent pas supporter la hauteur de l'élément parent, ce qui entraîne l'effondrement de la hauteur de l'élément parent. Pour résoudre ce problème, on utilise habituellement la technique du dégagement des flotteurs.

Lors de la suppression des flottants, l'attribut couramment utilisé est overflow:hidden. Sa fonction est de créer un nouveau BFC (contexte de formatage au niveau du bloc) pour contenir des éléments flottants. Cependant, nous constatons parfois que le paramètre overflow:hidden n'a pas pour effet d'effacer les flottants. Pourquoi est-ce le cas ? Analysons-le ensemble.

Tout d’abord, nous devons comprendre comment fonctionne l’attribut overflow. Lorsque overflow:hidden est défini, l'élément créera un nouveau BFC. L'une des caractéristiques du BFC est qu'il contiendra des éléments flottants. Par conséquent, dans des circonstances normales, la définition de overflow:hidden peut effectivement effacer le flottant, permettant à l'élément parent d'afficher normalement les éléments enfants flottants et d'augmenter la hauteur.

Cependant, dans certains cas particuliers, overflow:hidden échouera et ne fonctionnera pas. L'une des situations courantes est que la hauteur de l'élément parent est étirée par les éléments enfants flottants, mais que l'élément parent lui-même ne définit aucune hauteur. À l’heure actuelle, la définition de overflow:hidden n’efface pas le flottant.

En effet, lorsqu'un élément ne définit pas de hauteur spécifique, sa hauteur sera étirée par le contenu par défaut. L'élément flottant n'occupe plus de position dans le flux de documents, de sorte que l'élément parent ne peut pas détecter la hauteur de l'élément enfant flottant et ne peut donc pas se soutenir par rapport à l'élément enfant.

Pour résoudre ce problème, nous pouvons utiliser d'autres méthodes pour effacer les flotteurs. Une méthode courante consiste à ajouter un élément vide au niveau du bloc et à effacer son flottant. Le code spécifique est le suivant :

<style>
    .clearfix:after {
        content: "";
        display: block;
        clear: both;
    }
    .box {
        width: 200px;
        border: 1px solid #ccc;
    }
    .float-left {
        float: left;
        width: 100px;
        height: 100px;
        background-color: red;
        margin-right: 20px;
    }
</style>

<div class="box clearfix">
    <div class="float-left"></div>
    <div class="float-left"></div>
    <!-- 添加一个空的块级元素用于清除浮动 -->
    <div class="clearfix"></div>
</div>
Copier après la connexion

Dans le code ci-dessus, nous avons ajouté une classe clearfix à la boîte de l'élément parent et utilisé le pseudo-élément :before ou :after pour y ajouter un élément vide au niveau du bloc et l'effacer. . Fonctionnement flottant. De cette façon, le flotteur est effacé et la hauteur de l'élément parent est étirée correctement.

En plus des méthodes ci-dessus, il existe d'autres moyens d'effacer les flotteurs, tels que l'utilisation de la classe clearfix pour effacer les flotteurs ou l'utilisation d'une bibliothèque de classes spécialisée pour la suppression des flotteurs. Dans différentes situations, vous devrez peut-être choisir différentes méthodes de compensation des flotteurs. Dans le développement actuel, il est important de choisir la méthode de dégagement des flotteurs la plus adaptée en fonction de scénarios spécifiques.

En résumé, le réglage overflow:hidden n'est pas nécessairement efficace pour résoudre le problème d'effondrement en hauteur causé par le flottement. Dans certains cas particuliers, la hauteur de l'élément parent est étirée par les éléments enfants flottants, et la définition de overflow:hidden n'a aucun effet. À ce stade, nous pouvons utiliser d'autres méthodes pour effacer correctement le flotteur et faire en sorte que l'élément parent étende correctement sa hauteur.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!