NoteZ_技术博客 NoteZ_技术博客
🏠 首页
  • 📚 Web技术
  • 📋 Npm笔记
  • 📑 Markdown
  • 📄 Git笔记
  • 📝 Nginx文档
  • 📓 Linux文档
  • 📖 技术文档
  • 📜 其他文档
  • 🧊 NodeJs
  • 🎡 Express
  • 🔥 Rust
  • 🎉 Koa2
  • 🍃 MongoDB
  • 🐬 MySql
  • 🥦 Oracle
  • 🍁 Python
  • 🍄 JavaScript
  • 🌰 CSS
  • 🧄 HTML
  • 🥑 Canvas
  • 🌽 Nuxt
  • 🍆 React
  • 🥜 Vue
  • 🧅 TypeScript
  • 🌶️ AI
  • 📘 分类
  • 📗 标签
  • 📙 归档
⚜️ 在线编辑 (opens new window)
  • 📁 站点收藏
  • 📦 前端组件库
  • 📊 数据可视化
  • 🌈 开源插件
  • 🎗️ 关于我
  • 🔗 友情链接
GitHub (opens new window)

NoteZ_技术博客

前端界的小学生
🏠 首页
  • 📚 Web技术
  • 📋 Npm笔记
  • 📑 Markdown
  • 📄 Git笔记
  • 📝 Nginx文档
  • 📓 Linux文档
  • 📖 技术文档
  • 📜 其他文档
  • 🧊 NodeJs
  • 🎡 Express
  • 🔥 Rust
  • 🎉 Koa2
  • 🍃 MongoDB
  • 🐬 MySql
  • 🥦 Oracle
  • 🍁 Python
  • 🍄 JavaScript
  • 🌰 CSS
  • 🧄 HTML
  • 🥑 Canvas
  • 🌽 Nuxt
  • 🍆 React
  • 🥜 Vue
  • 🧅 TypeScript
  • 🌶️ AI
  • 📘 分类
  • 📗 标签
  • 📙 归档
⚜️ 在线编辑 (opens new window)
  • 📁 站点收藏
  • 📦 前端组件库
  • 📊 数据可视化
  • 🌈 开源插件
  • 🎗️ 关于我
  • 🔗 友情链接
GitHub (opens new window)
  • JavaScript笔记

  • CSS笔记

    • CSS @media 多媒体查询使用总结
    • CSS 改变鼠标指针形状
    • css 清除浮动的几种方法总结
      • 父级元素设置高度
      • 在浮动元素最后添加空标签
      • 父级div定义伪类
      • 父级元素定义
      • 所有元素一起浮动
      • 父级div定义
      • 总结
    • CSS3 元素转圈动画 (元素旋转动画)
    • CSS3之animation动画
    • CSS3之transition过渡
    • CSS3动画、旋转、旋转放大、放大、移动
    • CSS媒体查询 @media 常见的媒体尺寸设置
    • CSS或Js实现文字超出显示省略号
    • CSS教程和技巧收藏
    • CSS水平垂直居中常见方法
    • CSS给table的tbody添加滚动条
    • CSS设置自定义滚动条样式(兼容IE)
    • flex布局案例-圣杯布局
    • flex布局案例-基础
    • flex布局案例-网格布局
    • flex布局案例-输入框布局
    • flex布局案例-骰子
    • flex布局语法
    • Sass 基本使用方法
    • 「css技巧」使用hover和attr()定制悬浮提示
    • 「布局技巧」图片未加载前自动撑开元素高度
    • 从box-sizing属性入手,了解盒子模型
    • 使用 CSS 实现 pre 标签中内容换行方法
    • 图片加载失败使用CSS处理最佳实践
    • 如何根据系统主题自动响应CSS深色模式
    • 水平垂直居中的几种方式-案例
    • 滚动条样式设置(CSS)
    • 纯css实现Loading加载效果
    • CSS实现左侧固定,右侧自适应方法
  • HTML笔记

  • Canvas笔记

  • Nuxt笔记

  • React笔记

  • Vue笔记

  • TypeScript笔记

  • AI相关笔记

  • 开发文档
  • CSS笔记
NoteZ
2021-12-19
目录

css 清除浮动的几种方法总结

如果一个父级元素中包含一个子级元素,并且父级元素没有设置高,子级元素却设置了浮动,这时父级元素的高度就会塌陷,从而会使后面的页面结构发生错乱,为此下面总结了清除浮动的几种方法:

# 父级元素设置高度

<style type="text/css"> 
  .div1{height:200px;} //父级添加高度
  .left{float:left;width:100px;height:100px;}
  .right{float:right;width:100px;height:100px;}
</style> 
<div class="div1"> 
  <div class="left">Left</div> 
  <div class="right">Right</div> 
</div>
1
2
3
4
5
6
7
8
9

提示

父级 div 手动定义 height,就解决了父级 div 无法自动获取到高度的问题(只适合高度固定的布局,要给出精确的高度,如果高度和父级 div 不一样时,会产生问题)

# 在浮动元素最后添加空标签

<style type="text/css"> 
  .left{float:left;width:100px;height:100px;}
  .right{float:right;width:100px;height:100px;}
  .clearfloat{clear:both}  /*清除浮动代码*/
</style> 
<div class="div1"> 
  <div class="left">Left</div> 
  <div class="right">Right</div> 
  <div class="clearfloat"></div>
</div>
1
2
3
4
5
6
7
8
9
10

提示

添加一个空标签 (div) ,利用 css 提高的 clear:both 清除浮动,让父级元素能自动获取到高度(如果页面浮动布局多,就要增加很多空元素,影响美观)

# 父级div定义伪类

<style type="text/css"> 
  .left{float:left;width:100px;height:100px;}
  .right{float:right;width:100px;height:100px;}
   /*清除浮动代码*/
  .clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0}
  .clearfloat{zoom:1}
</style> 
<div class="div1 clearfloat"> 
  <div class="left">Left</div> 
  <div class="right">Right</div> 
</div>
1
2
3
4
5
6
7
8
9
10
11

提示

IE8以上和非IE浏览器才支持 :after,zoom (IE转有属性)可解决 ie6 , ie7 浮动问题。

# 父级元素定义

<style type="text/css"> 
  /* overflow:hidden 或 overflow:auto*/
  .div1{overflow:hidden;} /*清除浮动代码*/
  .left{float:left;width:100px;height:100px;}
  .right{float:right;width:100px;height:100px;}
</style> 
<div class="div1"> 
  <div class="left">Left</div> 
  <div class="right">Right</div> 
</div>
1
2
3
4
5
6
7
8
9
10

提示

必须定义 width 或 zoom:1,同时不能定义 height,使用 overflow:hidden 时,浏览器会自动检查浮动区域的高度(只推荐没有使用 position 的使用)

# 所有元素一起浮动

<style type="text/css"> 
  .div1{float:left;} /*清除浮动代码*/
  .left{float:left;width:100px;height:100px;}
  .right{float:right;width:100px;height:100px;}
</style> 
<div class="div1"> 
  <div class="left">Left</div> 
  <div class="right">Right</div> 
</div>
1
2
3
4
5
6
7
8
9

提示

所有元素一起浮动,就变成了一个整体(不推荐使用)

# 父级div定义

<style type="text/css"> 
  .div1{display:table;} /*清除浮动代码*/
  .left{float:left;width:100px;height:100px;}
  .right{float:right;width:100px;height:100px;}
</style> 

<div class="div1"> 
  <div class="left">Left</div> 
  <div class="right">Right</div> 
</div>
1
2
3
4
5
6
7
8
9
10

提示

将 div 属性变成表格(不推荐使用)

# 总结

以上几种方法均可达到清除浮动的方法,但值得注意的是它们清除浮动都会有不同程度的弊端,可以根据自己的业务需求选择,一般情况下我会选择 3 或 4 方式来清除浮动。

#CSS
上次更新: 2024/01/30, 00:35:17
CSS 改变鼠标指针形状
CSS3 元素转圈动画 (元素旋转动画)

← CSS 改变鼠标指针形状 CSS3 元素转圈动画 (元素旋转动画)→

最近更新
01
Gitea数据备份与还原
03-10
02
Linux 中使用 rsync 同步文件目录教程
03-10
03
Linux 使用 rsync 互相传输同步文件的简单步骤
03-08
更多文章>
Theme by Vdoing | Copyright © 2019-2025 NoteZ,All rights reserved | 冀ICP备2021027292号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式