Maison > Article > interface Web > Avantages et inconvénients de sept méthodes pour utiliser CSS pour effacer les flotteurs
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éfinitdé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 navigateurInconvé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 flottanteAvantages : simple, moins de code, bon support du navigateurInconvé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 toutAvantages : Aucun avantageInconvé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 Avantages : Aucun avantageInconvé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!