首先,我们需要先了解什么是CSS浮动以及浮动的特性,浮动元素会脱离文档流和父元素的控制,从而产生问题,如外部div不能撑开内部浮动元素的高度等。
首先,我们需要先了解什么是CSS浮动以及浮动的特性,浮动元素会脱离文档流和父元素的控制,从而产生问题,如外部div不能撑开内部浮动元素的高度等。
为了解决这种问题,我们通常会使用clearfix:after方法,让外部div能够正常的撑开内部浮动元素的高度,这个方法的核心是在外部div的伪元素:before或:after中加入clear:both这个属性,来清除浮动元素造成的影响。
下面,以两种完整的示例说明此方法的具体使用:
- 示例1
HTML代码如下:
<div class="parent">
<div class="child1"></div>
<div class="child2"></div>
<div class="clear"></div>
</div>
CSS样式如下:
.parent {
background-color: gray;
overflow: hidden;
}
.child1 {
width: 50%;
float: left;
height: 100px;
background-color: red;
}
.child2 {
width: 50%;
float: right;
height: 120px;
background-color: blue;
}
.clear {
clear: both;
}
在上述代码中,我们使用了clear:both来清除浮动对外部div造成的影响,进而让外部div正常地撑开内部元素的高度。
- 示例2
HTML代码如下:
<div class="container">
<div class="box"></div>
<div class="box"></div>
</div>
CSS代码如下:
.container {
border: 1px solid #000;
overflow: hidden;
}
.box {
width: 200px;
height: 200px;
background-color: #ccc;
margin: 10px;
float: left;
}
.container::after {
content: "";
display: table;
clear: both;
}
在上述代码中,我们使用了::after伪元素来清除浮动对外部div造成的影响,这种方法更为简洁,使用起来也比较方便。
综上所述,使用clearfix:after清除CSS浮动有两种通用的方法,一是加入一个空div,然后在该div中使用clear:both,二是使用伪元素::after来达到清除效果。这两种方法虽然写法有所不同,但底层都是通过清除浮动来解决外部div不能撑开问题的。
本文标题为:用clearfix:after消除css浮动解决外部div不能撑开问题
基础教程推荐
- 关于 byval 与 byref 的区别分析总结 2024-01-07
- 基于Ajax表单提交及后台处理简单的应用 2023-01-21
- vue中同步方法的实现 2023-07-10
- 深入探究JavaScript中WeakMap的原理与用法 2023-07-09
- 解决 Cannot read properties of undefined类型的报错 2023-08-31
- ajax获得json对象数组 循环输出数据的方法 2023-02-23
- 从vue-router看前端路由的两种实现 2024-02-08
- ajax数据返回进行遍历的实例讲解 2023-02-23
- Vue3.0的设计目标是什么?做了哪些优化? 2023-10-08
- CSS未知高度垂直居中的实现 2023-12-21