CSS新手入门笔记整理:CSS清除浮动的方法

  • 浮动可以让我们灵活地布局,但是也会带来一定的副作用。 父元素高度塌陷,从而导致边框不能撑开,背景色无法显示。 页面布局错乱。
  • 清除浮动,其实就是清除元素被定义浮动之后带来的脱离文档流的影响。浮动可以使元素移到左边或者右边,然后后面的文字或元素会环绕着这个浮动元素。如果不想浮动元素后面的元素环绕着它,希望后面的元素回归到正常文档流中去,这个时候我们可以清除浮动。

clear:both

语法

复制代码
元素{clear:both;}

|---------|-------------|
| 属性值 | 说明 |
| left | 清除左浮动 |
| right | 清除右浮动 |
| both | 同时清除左浮动和右浮动 |

clear 属性不是应用于浮动元素本身,而是应用于浮动元素后面的元素。

使用 clear:both 来清除浮动,往往会多添加一个 div 标签。这个 div 标签仅仅是为了清除浮动而添加的,没有任何其他意义。但它会增加多余的标签,还会破坏 HTML 代码的语义。


overflow:hidden

语法

复制代码
父元素{overflow:hidden;}
子元素{float:left;}

overflow:hidden 应用于浮动元素的父元素,而不是当前的浮动元素。

但它会隐藏超出父元素的内容部 分,有时候这并不是我们预期的效果。


::after 伪元素

::after 伪元素结合 clear:both 来清除浮动。

语法

复制代码
.clearfix{*zoom:1;}
.clearfix::after
{
 clear:both;
 content:"";
 display:block;
 height:0;
 visibility:hidden;
}

定义成一个公共的 class,这个 class 一般取名为".clearfix"然后对这个类进行全局引用,这样可以减少重复的 CSS 代码。(*zoom:1; 用于解决 IE6、IE7 的浮动问题。)


使用 clear:both 清除浮动会增加多余的标签,使用 overflow:hidden 清除浮动会使超出父元素的部分被隐藏。使用 ::after 伪元素来清除浮动,则不会有这些缺点。在实际开发中,更倾向::after 伪元素于使用方法。


相关推荐
子非鱼a8 分钟前
【文件上传】一个普普通通的edu16
前端
美狐美颜SDK开放平台26 分钟前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
pride.li1 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉
屏什么录1 小时前
电脑如何录屏幕视频和声音?从工具到代码,7 种方案帮你彻底搞定
前端·音视频开发
用户360055579002 小时前
Kestrel_VLLM_CUDA -09 · full-GPU decode:单 token 全设备
前端
kyriewen2 小时前
我上手了 Vite+ 1.0:Node 不用自己装,lint 却翻车了
前端·javascript·程序员
松就是我902982 小时前
你的 PPT 不缺内容,缺一个讲它的人
前端
松就是我902982 小时前
别再熬夜做 PPT 了!输入一个主题,AI 帮你把整套幻灯片做好,还能随便改字
前端
吴凡wudianmei2 小时前
每调一次模型都花钱?如何用工程手段把调用压到最少?
前端·后端·架构
李元_霸2 小时前
基于 AI 的 Web 与 App 端到端测试实践
前端·人工智能