css常见的两种清除浮动方法

简介: css中的浮动以及清除1. 浮动的概念浮动是网页布局中最古老的方式,但是这种方式最开始并不是为了网页布局而生的。浮动是为了让文字环绕图片而生的。在css中,浮动是通过float属性来实现的,float属性有left和right两个值,分别表示向左浮动和向右浮动。正是因为浮动并不是为网页布局而生的,导致我们在后面在使用的时候会有很多出乎意料的方式。

css中的浮动以及清除

1. 浮动的概念

浮动是网页布局中最古老的方式,但是这种方式最开始并不是为了网页布局而生的。浮动是为了让文字环绕图片而生的。在css中,浮动是通过float属性来实现的,float属性有left和right两个值,分别表示向左浮动和向右浮动。正是因为浮动并不是为网页布局而生的,导致我们在后面在使用的时候会有很多出乎意料的方式。

1.1 浮动的使用

浮动的使用非常简单,只需要给需要浮动的元素设置float属性即可。例如:

<div class = "bigBox">
    123
    <div class="box">我是一个盒子</div>
</div>
复制代码
.bigBox{
    background-color: #ccc;
}
.box {
    width: 100px;
    height: 100px;
    float: left;
}
复制代码

上面的代码块就应用了浮动的特性,我们将此盒子向左浮动了,这样盒子就会向左浮动,而且盒子的宽度会自动变成内容的宽度。

但是在这里我们发现一个问题,就是在外部盒子的高度没有将我们浮动的盒子包含进去。

这是为什么呢?这是因为浮动的元素脱离了文档流,所以在文档流中的元素不会将浮动的元素包含进去。

下面我们使用清除浮动来解决这个问题。

2.清除浮动

2.1 清除浮动的概念

清除浮动就是将浮动脱离标准文档流导致的高度塌陷问题解决掉。比如上面的例子,我们通过清除浮动,使得外部的盒子可以将浮动的元素包含进去。

清除浮动是为了解决浮动元素脱离文档流导致的高度塌陷问题。清除浮动的方式有很多,但是最常用的就是使用clear属性和伪元素来清除浮动。

2.2 clear清除浮动

clear属性是用来清除浮动的,它有四个值,分别是left、right、both、none。其中left和right分别表示清除左浮动和右浮动,both表示清除左右浮动,none表示不清除浮动。

那么如何来使用呢?

  • 在装浮动元素的盒子上使用clear属性,例如:
<div class = "bigBox">
    123
    <div class="box">我是一个盒子</div>
    <div style="clear:both;">我是一个盒子</div>
</div>
复制代码

在这里我们默认浮动的元素是向左浮动的,所以我们在装浮动元素的盒子上使用clear:both;来清除浮动。

虽然这样可以达到清除浮动的效果,但是这样很不优雅,尤其是在我们实际开发当中,我们需要将html和css分离开来;如果我们将css写在html中,会导致我们的html代码变得很臃肿。

这个时候,就需要用到第二种清除浮动的方式,利用伪元素。

2.3 伪元素清除浮动

伪元素是一种特殊的选择器,它可以用来选择一些不存在的元素,比如:before、after、first-letter、first-line等。伪元素以::开头,但是后面为了更好的兼容性,我们习惯使用:开头。

在这里我们使用到:after:before,表示在元素的结束和开始处插入一个元素。

于是,上面的清除浮动,我们可以这样写:

.bigBox:after {
    content: "";// 这里必须要有内容,否则不会生效(必须要有content)
    display: block;// 这里设置为非inline元素,否则不会生效
    clear: both;
}


相关文章
|
5天前
|
缓存 监控 前端开发
CSS 提高性能的方法
【10月更文挑战第24天】在实际应用中,还需要根据具体项目的特点和需求,灵活选择和组合这些方法,不断进行优化和改进。同时,随着技术的不断发展,也需要持续关注新的性能优化技巧和最佳实践,以保持在性能优化方面的领先地位。你对 CSS 性能优化还有哪些深入的思考和经验呢?欢迎进一步交流和分享。
|
9天前
|
前端开发
css页面顶部底部固定,中间自适应几种方法
【10月更文挑战第22天】css页面顶部底部固定,中间自适应几种方法
|
29天前
|
前端开发 容器
CSS 中几种常用的换行方法
CSS 中几种常用的换行方法
20 1
|
2月前
|
XML 前端开发 JavaScript
jQuery HTML / CSS 方法
jQuery HTML / CSS 方法
13 2
|
2月前
|
前端开发 JavaScript
jQuery css() 方法
jQuery css() 方法
19 3
|
24天前
|
前端开发 UED
css性能优化的方法
css性能优化的方法
20 0
|
1月前
|
前端开发
CSS绘制三角形的方法
CSS绘制三角形的方法
|
2月前
|
前端开发 JavaScript
jQuery css() 方法
jQuery css() 方法
14 1
|
3月前
|
前端开发 容器
css溢出隐藏的五种方法
css溢出隐藏的五种方法
32 1
|
2月前
|
XML 前端开发 JavaScript
jQuery HTML / CSS 方法
jQuery HTML / CSS 方法
27 0