CSS如何清除浮动?css清除浮动的五种方法总结

酷磊大大_8423

酷磊大大_8423

2018-08-10

3847人浏览

原创

这篇文章给大家介绍的内容是关于css如何清除浮动?css清除浮动的五种方法总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

方法一(使用空标签带clear属性)

标签可以是div   br hr

在浮动元素后使用一个空元素如

,并在CSS中赋予.clear{clear:both;}属性即可清理浮动。亦可使用
或
来进行清理。

优点:简单,代码少,浏览器兼容性好。

缺点:需要添加大量无语义的html元素,代码不够优雅,后期不容易维护。

在浮动元素下加

   .clear{ height:0px;font-size:0;clear:both;},但是在ie6下,块元素有最小高度,即当height

 解决方法:font-size:0;或overflow:hidden;  在浮动元素下加
用以清除浮动 

方法二(给浮动元素的父元素添加overflow属性)解决了通过空标签元素清除浮动而不得不增加无意代码的弊端。

使用该方法是只需在需要清除浮动的元素中定义CSS属性:overflow:auto

overflow:auto;是让高度自适应,zoom:1;是为了兼容IE6,也可以用height:1%;的方式解决,

注意:zoom不符合W3C标准。overflow:hidden也可以实现。


  • AAA
  • BBB
  • CCC

方法三:(给浮动的元素的容器添加浮动,即为父级添加float来清除浮动)

<div>
   <div>
 
   </div>
   <div>
 
   </div>
</div>

给浮动元素的容器也添加上浮动属性即可清除内部浮动

缺点:会使其整体浮动,影响布局,不推荐使用。

方法四: (使用after伪对象清除浮动)

after 伪元素(注意这不是伪类,而是伪元素,代表一个元素之后最近的元素)和 IEhack ,可以完美兼容当前主流的各大浏览器,这里的 IEhack 指的是触发 hasLayout。

通过after伪元素实现元素末尾添加一个看不见的块元素(Block element)清理浮动。

通过CSS伪元素在容器的内部元素最后添加了一个看不见的空格""或点".",并且赋予clear属性来清除浮动。需要注意的是为了IE6和IE7浏览器,要给clearfix这个class添加一条zoom:1;触发haslayout。

after伪对象非IE浏览器支持,所以并不影响到IE/WIN浏览器。具体写法可参照以下示例。使用中需注意以下几点。

一、该方法中必须为需要清除浮动元素的伪对象中设置height:0,否则该元素会比实际高出若干像素;

AI Surge Cloud
AI Surge Cloud

AI Surge Cloud是一款面向企业数据科学和 ModelOps 的无代码决策智能平台。

下载

二、content属性是必须的,但其值可以为空,讨论该方法的时候content属性的值设为".",

<style> 
.listinfo:after{
      display:block;
      clear:both;
      content:"";  
      visibility:hidden;
      height:0;
} 
<ul class="listinfo">
<li>AAA
<li>BBB
<li>CCC
</style>

方法五:使用邻接元素处理

什么都不做,给浮动元素后面的元素添加clear属性。

方法与添加一个空标签类似,只是此处用浮动元素紧邻的元素

使用情况:

在网页主要布局时使用:after伪元素方法并作为主要清理浮动方式;

在小模块如ul里使用overflow:hidden;(留意可能产生的隐藏溢出元素问题);

如果本身就是浮动元素则可自动清除内部浮动,无需格外处理;

正文中使用邻接元素清理之前的浮动。

使用相对完美的:after伪元素方法清理浮动,文档结构更加清晰;

BUG修正:

(1)、双倍边距bug处理 IE6 时,另一个需要记住的事情是,如果在和浮动方向相同的方向上设置外边距(margin),会引发
双倍边距。

快速修正:给浮动设置 display:inline; 而且不用担心,它依然是块级元素。
(2)、3像素间距是指挨着浮动元素的文本会神奇的被踢出去3像素,好像浮动元素的周围有一个奇怪的力场一样。

快速修正:在受影响的文本上设置宽度或高度。
(3)、IE7 中,底边距 bug是当浮动父元素有浮动子元素时,这些子元素的底边距会被父元素忽略掉。

快速修正:用父元素的底内补白(padding)代替。

相关推荐:

css中定位问题:绝对定位、相对定位、fixed和static

css中如何实现浮动的元素换行

什么是浮动?css清除浮动的原理

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

2024.04.28

6407

8

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

2025.10.23

744

4

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

2024.01.03

3816

7

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

2025.12.06

306

9

overflow什么意思
overflow什么意思

overflow是一个用于控制元素溢出内容的属性,当元素的内容超出其指定的尺寸时,overflow属性可以决定如何处理这些溢出的内容。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.08.15

3180

3

margin在css中是啥意思
margin在css中是啥意思

在CSS中,margin是一个用于设置元素外边距的属性。想了解更多margin的相关内容,可以阅读本专题下面的文章。

2023.12.18

857

10

css中的padding属性作用
css中的padding属性作用

在CSS中,padding属性用于设置元素的内边距。想了解更多padding的相关内容,可以阅读本专题下面的文章。

2023.12.07

2812

3

zoom是什么软件
zoom是什么软件

Zoom软件作为一种远程会议和在线教育的工具,正逐渐成为人们首选的平台。其功能有:1、其功能介绍:1、视频会议功能;2、屏幕共享功能;3、互动工具;4、录制和回放功能。

2023.08.23

933

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.7万人学习