Maison  >  Article  >  interface Web  >  Avantages et inconvénients de sept méthodes pour utiliser CSS pour effacer les flotteurs

Avantages et inconvénients de sept méthodes pour utiliser CSS pour effacer les flotteurs

高洛峰
高洛峰original
2017-03-21 14:28:521998parcourir

1, définition du parent p hauteur

<style type="text/css"> 
.p1{background:#000080;border:1px solid red;/*解决代码*/height:200px;} 
.p2{background:#800080;border:1px solid red;height:100px;margin-top:10px} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
</style> 
<p class="p1"> 
<p class="left">Left</p> 
<p class="right">Right</p> 
</p> 
<p class="p2"> 
p2 
</p>

Principe : le parent p définit manuellement la hauteur, ce qui résout le problème selon lequel le parent p ne peut pas obtenir automatiquement la hauteur.

Avantages : simple, moins de code, facile à maîtriser

Inconvénients : convient uniquement aux mises en page avec une hauteur fixe. Pour donner une hauteur précise, des problèmes surviendront si la hauteur est différente de celle du parent. p

Recommandation : Non recommandé, uniquement recommandé pour les aménagements à hauteur fixe

2, ajoutez une balise p vide à la fin clear:both

<style type="text/css"> 
.p1{background:#000080;border:1px solid red} 
.p2{background:#800080;border:1px solid red;height:100px;margin-top:10px} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
/*清除浮动代码*/ 
.clearfloat{clear:both} 
</style> 
<p class="p1"> 
<p class="left">Left</p> 
<p class="right">Right</p> 
<p class="clearfloat"></p> 
</p> 
<p class="p2"> 
p2 
</p>

Principe : ajoutez un p vide, utilisez clear:tous deux améliorés par CSS pour effacer le float, afin que le parent p puisse obtenir automatiquement la hauteur

Avantages : simple, moins de code, bon support du navigateur, pas sujet aux bizarreries Problème

Inconvénients : De nombreux débutants ne comprennent pas le principe ; si la page a trop de mises en page flottantes, beaucoup de ps vides seront ajoutés, ce qui fait que les gens se sentent mal

Suggestions : Ce n'est pas recommandé, mais cette méthode est une méthode float claire qui était principalement utilisée avant

3, définition p parent pseudo-classe  :après et zoom

<style type="text/css"> 
.p1{background:#000080;border:1px solid red;} 
.p2{background:#800080;border:1px solid red;height:100px;margin-top:10px} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
/*清除浮动代码*/ 
.clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0} 
.clearfloat{zoom:1} 
</style> 
<p class="p1 clearfloat"> 
<p class="left">Left</p> 
<p class="right">Right</p> 
</p> 
<p class="p2"> 
p2 
</p>

Principe : uniquement IE8 et supérieur et les navigateurs non IE pris en charge :after Le principe est quelque peu similaire à la méthode 2. Zoom (le transfert IE a <.>attribut) peut résoudre le problème flottant d'IE6, IE7

Avantages : bonne prise en charge du navigateur, non sujet à des problèmes étranges (actuellement : utilisé par les grands sites Web, tels que : Tengxun, NetEase, Sina, etc. )

Inconvénients : code De très nombreux débutants ne comprennent pas le principe. Ils doivent utiliser deux lignes de code en combinaison pour être pris en charge par les navigateurs grand public.

Recommandation : Utilisation recommandée, il est recommandé de définir des classes publiques pour réduire le code CSS.

4, le parent p définit

débordement:hidden

<style type="text/css"> 
.p1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:hidden} 
.p2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
</style> 
<p class="p1"> 
<p class="left">Left</p> 
<p class="right">Right</p> 
</p> 
<p class="p2"> 
p2 
</p>
Principe : la largeur ou le zoom :1 doivent être définis, et la hauteur ne peut pas être définie en même temps, lors de l'utilisation de overflow:hidden , le navigateur vérifiera automatiquement la hauteur de la zone flottante

Avantages : simple, moins de code, bonne prise en charge du navigateur

Inconvénient : ne peut pas être utilisé en conjonction avec

position, car l'excédent La taille sera masquée.

Recommandation : Recommandé uniquement aux amis qui n'ont pas utilisé la position ou qui ont une compréhension approfondie de overflow:hidden.

5, parent p définit overflow:auto

<style type="text/css"> 
.p1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:auto} 
.p2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
</style> 
<p class="p1"> 
<p class="left">Left</p> 
<p class="right">Right</p> 
</p> 
<p class="p2"> 
p2 
</p>
Principe : la largeur ou le zoom :1 doivent être définis et la hauteur ne peut pas être définie. Lors de l'utilisation de overflow:auto, le navigateur le fera automatiquement. vérifier La hauteur de la zone flottante

Avantages : simple, moins de code, bon support du navigateur

Inconvénient : lorsque la largeur et la hauteur internes dépassent le p parent, une barre de défilement apparaît.

Recommandation : Non recommandé, utilisez-le si vous avez besoin que des barres de défilement apparaissent ou pour vous assurer que les barres de défilement n'apparaissent pas dans votre code.

6, le parent p flotte également ensemble

<style type="text/css"> 
.p1{background:#000080;border:1px solid red;/*解决代码*/width:98%;margin-bottom:10px;float:left} 
.p2{background:#800080;border:1px solid red;height:100px;width:98%;/*解决代码*/clear:both} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
</style> 
<p class="p1"> 
<p class="left">Left</p> 
<p class="right">Right</p> 
</p> 
<p class="p2"> 
p2 
</p>
Principe : Tous les codes flottent ensemble et deviennent un tout

Avantages : Aucun avantage

Inconvénients : De nouveaux problèmes de flottement vont survenir.

Recommandation : Non recommandé, juste pour comprendre.

7, le parent p définit display:table

<style type="text/css"> 
.p1{background:#000080;border:1px solid red;/*解决代码*/width:98%;display:table;margin-bottom:10px;} 
.p2{background:#800080;border:1px solid red;height:100px;width:98%;} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
</style> 
<p class="p1"> 
<p class="left">Left</p> 
<p class="right">Right</p> 
</p> 
<p class="p2"> 
p2 
</p>
Principe : changer l'attribut p en

table

Avantages : Aucun avantage

Inconvénients : De nouveaux problèmes inconnus surgiront.

Recommandation : Non recommandé, juste pour comprendre.

8, ajoutez la balise br à la fin 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!

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