网站首页 > 技术文章 正文
前言
首先我们通过一张图来解释下元素浮动是什么样的状态。
元素浮动情况
上图的html部分代码为:
html代码
css部分代码为:
css代码
通过上面的图片可以看出,当内部的div设置float后,外部的元素的就会受到以下影响:
背景不能显示
边框不能被撑开
margin和padding设置的值不能正确显示
元素浮动的坏处
如果不清除元素浮动的话,浮动层后面的非浮动层内容就有可能被覆盖,造成页面的排版混乱。
例如在上面的例子中再加一个非浮动的div,就会发现该div被前面的三个浮动div覆盖住。
因为浮动,后面的div被覆盖
既然会出现这种情况,我们就应该设法清除掉元素的浮动。
方法1-父级元素设定定高
我们可以给父级元素.outer设置为定高,这样就可以不影响后面的非浮动元素。.outer的样式为:
设置定高
达到的效果为
清楚浮动之后
虽然这种方法可以清楚浮动,但是对父元素设置定高会有很多的限制,如果内层div的高度变化,则需要手动修改外层div的高度,相对来说有点麻烦,因此这种方法并不推荐。
方法2-添加新元素,设置clear:both
在父元素内部的末尾处添加一个新的div,并设置其clear: both;属性。
添加一个新的div
该新增div的css属性为:
新增div的css属性
利用该方法同样可以达到清楚浮动的效果,但是由于会新增DOM元素,这种方法也不推荐。
方法3-父级元素使用overflow:hidden属性
在父级元素上使用overflow:hidden属性,准确来说只要不给overflow属性设置为visible都可以清除元素浮动。
设置overflow: hidden
使用这种方法可以少写很多css样式代码,同时不会新增DOM元素,因此推荐使用这种方式。
方法4-对父元素使用伪元素
通过对父元素使用:after伪元素,同样可以达到清除浮动的效果。
伪元素清楚浮动
以上方法在伪元素中,通过设置clear与overflow属性来实现。方法4在实际的项目中使用的频率最高,因此极大的推荐使用方法4来清除元素浮动。
其他方法
看到网上有的资料介绍,通过设置父元素为浮动,或者设置父元素为absolute定位,这两种方法只是能显示父元素而已,但父元素同样会覆盖到后面的非浮动元素,因此这两种方法严格意义来说并不算清除浮动的方法。
总结
今天这篇文章主要介绍了几种通过CSS来清除元素浮动的方法,你掌握了吗?
猜你喜欢
- 2025-05-05 儿童用品、早教机构使用的整站html页面前端源码
- 2025-05-05 守望先锋黄金锦标赛都有哪些出色选手 来看下吧
- 2025-05-05 Vue CLI4.0版本正式发布了!一起来看看有哪些新的变化吧
- 2025-05-05 图片延迟加载,你会使用吗?给你推荐几款插件,快来学习吧
- 2025-05-05 一个简单的CSS属性助你实现页面的等比例缩放,快来学习一下吧
- 2025-05-05 如果你是前端工程师,把你的网站或者你知道的网站加进来吧
- 2024-09-16 React 19 超强新特性,今天就来一探究竟吧(二)
- 2024-09-16 div+css助你实现漂亮的input,来看看吧
- 2024-09-16 详细讲解Javascript中的事件委托机制,来学习一下吧
- 2024-09-16 使用Express搭建简书网站服务端,快跟着学下一下吧
你 发表评论:
欢迎- 576℃几个Oracle空值处理函数 oracle处理null值的函数
- 573℃Oracle分析函数之Lag和Lead()使用
- 558℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 555℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 551℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 543℃【数据统计分析】详解Oracle分组函数之CUBE
- 531℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 526℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)