您现在的位置是:网站首页> 编程资料编程资料
详解CSS布局中浮动问题的四种解决方案CSS清楚浮动clear:both的实例代码css解决浮动导致父元素高度坍塌的几种方法关于CSS浮动与取消浮动的问题
2021-09-03
1121人已围观
简介 这篇文章主要介绍了详解CSS布局中浮动问题的四种解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
一、起因:

子盒子设置浮动之后效果:

由此可见,蓝色的盒子设置浮动之后,因为脱离了标准文档流,它撑不起父盒子的高度,导致父盒子 高度塌陷。如果网页中出现了这种问题,会导致我们整个网页的布局紊乱
二、解决方案:
- 父盒子设置固定高度------------------给父元素添加固定的高度
- 内墙法 -------------------------------在父元素的后面添加一个空的div添加样式为 clear:both
- 伪元素清除法-------------------------给父元素类名添加一个类叫 clearfix (推荐)
- overflow:hidden---------------------给父元素样式添加 overflow:hidden
(1)父盒子设置固定高度

虽然,给父盒子设置了固定高度能暂时解决我们的问题,但是它的使用不灵活,如果未来子盒子的高度需求发生了改变(网页的多处地方),那么我们得手动需要更改父盒子的高度。后期不易维护。
应用:网页中盒子固定高度区域,比如固定的导航栏。
缺点:使用不灵活,后期不易维护
(2)内墙法
在浮动元素的后面加一个空的 块级元素 (通常是div),并且该元素设置 clear:both; 属性。clear属性,字面意思就是清除,那么both,就是清除浮动元素对我左右两边的影响。
代码如下:
浮动元素的破坏性 儿子
应用:网页中应用不多,只是为了引导下一个清除浮动的方式。
缺点:结构冗余
(3)伪元素清除法
内墙法是在浮动元素的后面加一个空的 块级元素 (通常是div),并且该元素设置 clear:both; 属性。
那么正好在css3的属性用法中整好有个选择器也完全符合这个用法,伪元素选择器。它就像伪类一样,让伪元素添加了选择器,但不是描述特殊的状态,允许为元素的 某些部分设置样式 。
表示在p标签元素的最后面添加样式,同时这也正好符合内墙法的用法。
代码如下:
浮动元素的破坏性 儿子
当以后需要清除浮动时只需要在标签中再添加一个 “clearfix” 类就行,十分的方便快捷 !
编写的伪元素清除法内容解释:
.clearfix:after{ content:''; 表示给.clearfix元素内部最后添加一个内容,该内容为行内元素。 display: block; 设置该元素为块级元素,符合内墙法的需求。(有的地方使用table,因为table也是一个块级元素) clear: both; 清除浮动的方法。必须要写 overflow: hidden; 如果用display:none;,那么就不能满足该元素是块级元素了。overflow:hidden;表示隐藏元素,但是该元素占位置;而display:none;不占位置。 height: 0; }此处梳理一下:after(伪类)和::after(伪元素)的区别
相同点
- 都可以用来表示伪类对象,用来设置对象前的内容
- :before和::before写法是等效的; :after和::after写法是等效的,版本不同而已
不同点
- :before/:after是Css2的写法,::before/::after是Css3的写法
- :before/:after 的兼容性要比::before/::after好 ,
- 不过在H5开发中建议使用::before/::after比较好
注意
- 这些伪元素 要配合content属性一起使用
- 这些伪元素 不会出现在DOM中,所以不能通过js来操作,仅仅是在 CSS 渲染层加入
- 这些伪元素 的特效通常要使用:hover伪类样式来激活
(4)overflow:hidden
CSS属性overflow定义一个元素的内容太大而无法适应盒子的时候该做什么。它是overflow-x和overflow-y的简写属性

overflow属性不仅仅能实现以上效果,那么当一个元素设置了overflow:hidden|auto|scroll属性之后,它会形成一个BFC区域,我们叫做它为 块级格式化上下文 。
BFC只是一个规则。它对浮动定位都很重要。浮动定位和清除浮动只会应用于同一个BFC的元素。
浮动不会影响其它BFC中元素的布局,而清除浮动只能清除同一BFC中在它前面的元素的浮动。

优点:代码简洁
缺点:内容增多的时候容易造成不会自动换行导致内容被隐藏掉,无法显示要溢出的元素
总结:只要我们让父盒子形成BFC的区域,那么它就会自动清除区域中浮动元素带来的影响 。
哪些会形成BFC区域:

到此这篇关于详解CSS布局中浮动问题的四种解决方案的文章就介绍到这了,更多相关CSS布局浮动内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- CSS中flex和inline-flex的区别详解详解CSS中的display:flex||inline-flex属性
- CSS常用样式之绘制双箭头的示例代码HTML外部样式表如何引入CSS样式详解CSS3中常用的样式【基本文本和字体样式】编程式处理Css样式的示例代码CSS 选择所有子元素添加样式的方法详解中文字体在CSS样式中font-family对应的英文名称CSS实现鼠标悬停改变其他标签样式的示例代码解决ElementUI自定义CSS样式不生效的问题
- CSS3动画和HTML5新特性详解css3实现动画的三种方式如何使用css3实现一个类在线直播的队列动画的示例代码html5新特性与用法大全使用html5新特性轻松监听任何App自带返回键的示例HTML5新特性之type=file文件上传功能HTML5新特性之语义化标签前端面试必备之html5的新特性
- 详解浮动元素引起的问题和解决办法css解决浮动导致父元素高度坍塌的几种方法CSS实现元素浮动和清除浮动的方法什么是BFC? CSS 使用伪元素清除浮动的方法CSS 同级元素浮动分析小结详解css使既有浮动又有左右margin的多个元素两端对其使用CSS居中浮动元素的方法父元素的高度为0利用伪元素:after清除浮动可解决问题元素浮动之后文字会环绕而不是重合原因示例解答float元素浮动后高度不一致导致错位的解决办方法Css浮动元素外层容器高度为0(无高度)的解决方法
- CSS 中的六个重要选择器(三秒就可以记住)
- CSS+JS实现水滴涟漪动画按钮效果的示例代码CSS3 水墨风格背景动画按钮基于 CSS 动画的 SVG 按钮实例代码
- flex是什么及flex布局语法教程详解使用Flex布局实现头部固定内容区域滚动的方法详解flex布局下图片变形的解决方法详解flex布局与position:absolute/fixed的冲突问题Flex布局实现div内部子元素垂直居中的示例Flex布局让子项保持自身高度的实现让CSS flex布局最后一行列表左对齐的N种方法(小结)css3 flex布局实现平均分配元素的示例代码flex布局实现上下固定中间滑动的布局方式
- 看完不迷糊的 CSS 盒子模型介绍CSS盒子模型是什么css盒子模型图解css盒子模型详解加示例CSS3盒子模型详解CSS3盒子模型详解CSS 理解盒子模型css的核心内容 标准流、盒子模型、浮动、定位等分析
- 完美解决谷歌浏览器自动填充问题谷歌浏览器怎么安装Vue.js devtools插件?谷歌浏览器怎么禁止网站使用摄像头? 谷歌浏览器摄像头设置方法谷歌Chrome浏览器全局媒体控件支持桌面实时字幕良心推荐 10个强大的谷歌插件 给浏览器开挂谷歌访问助手 v2.3.0永久激活版
- 详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用css3 filter属性的使用简介CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码css中filter属性和backdrop-filter的应用与区别详解使用css的filter写鼠标滑过效果的实现示例CSS filter 有什么神奇用途
