页面清除浮动的五种方法

简介: 页面清除浮动的五种方法

为什么要清除浮动?因为往往浮动后的子元素因为脱离了标准流,不能自动撑起父元素的高度,所以会对后续布局产生影响,对此清除浮动不如理解为清除浮动产生的影响更为合理。


例如:我们设置了两个盒子如图所示,粉色为父盒子,只有宽度没有高度,蓝色盒子有宽有高,粉色盒子的高由蓝盒子的高度撑开。




但是给蓝色的子盒子设置了左浮动后,脱离了标准流,无法再撑开粉盒子,可以看到粉盒子高度变成了0;





清除浮动有五种方法:

直接设置父元素的高度

额外标签法

单伪元素法

双伪元素法

overflow-hidden

一:直接设置父元素的高度

因为子元素设置了浮动产生的影响就是父元素的高度无法被子元素撑开,所以直接给父元素设置高度是一个非常简便的做法。但是这种方法也有缺点,就是父元素不再是被子元素撑开的,高度有了限制,如果子元素内容较多,则会溢出父元素


<style>

       .father{

           width: 600px;

           height: 500px;  //直接设置父元素的高度

           background-color: rgb(255, 152, 152);

       }

       .son{

           float: left;

           width: 300px;

           height: 500px;

           background-color: rgb(105, 133, 255);

       }

   </style>

</head>

<body>

   <div class='father'>

       <div class="son"></div>

   </div>

</body>


二:额外标签法

额外标签法即在父元素内容末尾添加一个块级元素,然后给该块级元素设置 clear:both;  缺点为会使代码内容添加很多不必要地标签,看起来较为混乱


<style>

       .father{

           width: 600px;

           background-color: rgb(255, 152, 152);

       }

       .son{

           float: left;

           width: 300px;

           height: 500px;

           background-color: rgb(105, 133, 255);

       }

       .clear{  //给添加的块级元素添加属性

           clear: both;

       }

   </style>

</head>

<body>

   <div class='father'>

       <div class="son"></div>

       <div class="clear"></div>  //在父元素内容末尾添加一个块级元素,多为div

   </div>

</body>


三:单伪元素法

该方法与添加额外标签相似,只不过是在父元素内容最后天添加了一个伪元素,给其 display 设置为块级元素,并设置必需的 content 属性 ,最后设置 clear:both;   此方法优点为不会让代码内容乱糟糟,不会出现多余的标签,使用较多 。


<style>

       .father{

           width: 600px;

           background-color: rgb(255, 152, 152);

       }

       .son{

           float: left;

           width: 300px;

           height: 500px;

           background-color: rgb(105, 133, 255);

       }

      .father::after{  //给父元素内容末尾添加了伪元素

          content: '';

          display: block;

          clear: both;

      }

   </style>

</head>

<body>

   <div class='father'>

       <div class="son"></div>

   </div>

</body>


为了避免一些较小众的浏览器也可以兼容此方法,往往会补充一些代码:作用为让网页看不到伪元素


.father::after{

          content: '.';

          display: block;

          clear: both;

          height: 0;

          visibility: hidden;

      }

四:双伪元素法:

此方法多用于清除盒子塌陷问题,另一个文章讲到过,也可以用于清除浮动,但是使用单伪元素更多


<style>

       .father{

           width: 600px;

           background-color: rgb(255, 152, 152);

       }

       .son{

           float: left;

           width: 300px;

           height: 500px;

           background-color: rgb(105, 133, 255);

       }

      .father::before,  //双伪元素

      .father::after{

          content: '';

          display: table;

      }

      .father::after{

          clear:both;

      }

   </style>

</head>

<body>

   <div class='father'>

       <div class="son"></div>

   </div>

</body>


五:overflow-hidden

直接给父元素设置 overflow-hidden 即可,十分方便;


<style>

       .father{

           overflow: hidden;  //直接给父元素设置 overflow:hidden 即可

           width: 600px;

           background-color: rgb(255, 152, 152);

       }

       .son{

           float: left;

           width: 300px;

           height: 500px;

           background-color: rgb(105, 133, 255);

       }

   </style>

</head>

<body>

   <div class='father'>

       <div class="son"></div>

   </div>

</body>


相关文章
|
2月前
|
弹性计算 监控 安全
阿里云渠道商:如何使用阿里云弹性公网 IP?
阿里云弹性公网IP(EIP)支持灵活绑定、弹性计费与高可用部署,适用于业务扩展、成本优化及混合云连接等场景,助力企业高效、经济地管理公网接入。
|
9月前
|
人工智能 小程序 算法
【01】AI制作音乐之三款AI音乐软件推荐,包含AI编曲-AI伴奏-AI混音合成remix等-其次关于音乐版权的阐述-跟随卓伊凡学习如何AI制作音乐-优雅草卓伊凡
【01】AI制作音乐之三款AI音乐软件推荐,包含AI编曲-AI伴奏-AI混音合成remix等-其次关于音乐版权的阐述-跟随卓伊凡学习如何AI制作音乐-优雅草卓伊凡
1702 14
|
传感器 监控 自动驾驶
|
缓存 关系型数据库 MySQL
在Linux中,如何优化MySQL性能,包括索引优化和查询分析?
在Linux中,如何优化MySQL性能,包括索引优化和查询分析?
|
Ubuntu Python
ubuntu build install python3.12 and config pip
该脚本用于在 Ubuntu 上编译安装 Python 3.12,并配置 pip 使用国内镜像源。主要步骤包括安装依赖、下载并解压 Python 源码、编译安装、创建符号链接、配置 pip 源,以及验证安装和更新 pip。通过运行此脚本,可以快速完成 Python 3.12 的安装和配置。
1597 0
|
分布式计算 Hadoop Scala
Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
【4月更文挑战第13天】Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
714 0
|
C#
C#求100-999之间的水仙花数,你知道多少个?让我们一起来探索!
C#求100-999之间的水仙花数,你知道多少个?让我们一起来探索!
343 0
|
数据可视化 数据挖掘 Go
RNA-seq丨转录组分析标准流程与常用工具
RNA-seq丨转录组分析标准流程与常用工具
|
JavaScript
Vue中使用element-ui的el-dialog对话框,实现拖拽效果(整理)
Vue中使用element-ui的el-dialog对话框,实现拖拽效果(整理)
|
存储 消息中间件 缓存
你管这破玩意叫Pulsar
你管这破玩意叫Pulsar
739 0
你管这破玩意叫Pulsar