CSS浮动
浮动(float)让元素脱离文档流,向左或向右移动,常用于多列布局和文字环绕效果。
基本语法
CSS
.float-left {
float: left;
}
.float-right {
float: right;
}
.float-none {
float: none;
}
基本特性
| 特性 | 说明 |
|---|---|
| 脱离文档流 | 浮动元素不占据原空间 |
| 文字环绕 | 行内内容会环绕浮动元素 |
| 块级化 | 浮动后元素变为块级框 |
| 自动收缩 | 未设宽度时宽度由内容决定 |
典型应用
文字环绕图片
CSS
.article img {
float: left;
margin-right: 15px;
margin-bottom: 10px;
}
多列布局
CSS
.container {
width: 100%;
}
.column {
float: left;
width: 33.33%;
padding: 10px;
box-sizing: border-box;
}
导航栏
CSS
.nav {
list-style: none;
}
.nav li {
float: left;
margin-right: 20px;
}
清除浮动
浮动会导致父容器高度塌陷,需要清除:
方法一:clear 属性
CSS
.clearfix {
clear: both; /* 清除两侧浮动 */
}
HTML
<div class="container">
<div class="float-left">浮动元素</div>
<div style="clear: both;"></div>
</div>
方法二:伪元素(推荐)
CSS
.clearfix::after {
content: "";
display: table;
clear: both;
}
HTML
<div class="container clearfix">
<div class="float-left">浮动元素</div>
</div>
方法三:overflow
CSS
.container {
overflow: hidden; /* 或 auto */
}
注意:现代布局推荐使用 Flexbox 或 Grid,浮动主要用于文字环绕场景。
浮动与清除对比
| 属性值 | 作用 |
|---|---|
clear: left | 清除左侧浮动影响 |
clear: right | 清除右侧浮动影响 |
clear: both | 清除两侧浮动影响 |
要点总结
- 浮动使元素脱离文档流,实现文字环绕和多列布局
- 必须处理父容器高度塌陷问题
- 推荐使用伪元素
::after+clear: both清除浮动 - 现代布局优先使用 Flexbox 和 Grid
📝 发现内容有误?点击此处直接编辑