首先,我们需要先了解什么是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不能撑开问题


基础教程推荐
- 纯CSS实现鼠标放上滑动出半透明效果的文字说明(新手小白 必看) 2023-12-29
- 解析OpenLayers 3加载矢量地图源的问题 2023-08-11
- 基于Ajax技术实现文件上传带进度条 2023-01-20
- AngularJS实现动态切换样式的方法分析 2024-01-24
- layer.open()详细参数对照说明 2023-07-09
- Ajax 上传图片并预览的简单实现 2023-01-21
- Python2 Selenium元素定位的实现(8种) 2023-12-11
- JavaScript 隐式类型转换规则详解 2023-08-08
- 网站配色,CSS主色调配色方案 2023-12-30
- ES2020让代码更优美的运算符 (?.) (??) 2023-12-21