CSS clear 属性

CSS clear 语法

在 CSS 中,clear 属性用于清除元素的浮动行为。

语法:

clear: 关键字;

说明:

clear 的常用取值有 4 种,如下表所示。

clear 属性取值
取值 说明
none(默认值) 不清除浮动
left 清除左浮动
right 清除右浮动
both 清除所有浮动

对于 clear 属性,小伙伴们要清楚以下几点。

  • clear 属性会增加元素的顶部外边距来向下移动元素,以确保其边界位于所有指定方向的浮动元素下方。
  • clear: both; 是最常用的清除浮动的方式,用于确保元素从一个新的行开始,不受之前任何浮动元素的影响。
  • 清除浮动常用于解决浮动元素导致父容器高度坍塌的问题(即父容器高度无法包含浮动子元素)。常用的解决方法是在父容器上应用 BFC(例如设置 overflow: hidden; 或 display: flow-root;)或在浮动元素后添加一个设置了 clear: both; 的元素。

注意: clear 属性只对块级元素或生成的内容(使用 :before 或 :after 伪元素)生效。行内元素会忽略 clear 属性。

CSS clear 摘要

属于 CSS 清除浮动
使用频率 中(传统布局)
是否继承 否
默认值 none
兼容性 查看
官方文档 查看
MDN 查看
相关属性 float

CSS clear 示例

接下来,我们通过一个简单的例子来讲解一下 CSS clear 属性是如何使用的。

示例 1:没有使用 clear 清除浮动

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        #father {
            width: 300px;
            background-color:teal;
            border: 1px solid silver;
        }
        #son1, #son2{
            padding: 10px;
            margin: 20px;
        }
        #son1 {
            background-color: hotpink;
            float: left;
        }
        #son2 {
            background-color: orange;
            float: right;
        }
    </style>
</head>
<body>
    <div id="father">
        <div id="son1">box1</div>
        <div id="son2">box2</div>
    </div>
</body>
</html>

页面效果如下图所示。

没有清除浮动的情况

分析:

上面是使用了 float 属性之后,没有清除浮动的效果,此时可以看到父元素出现高度塌陷的问题。

示例 2:使用 clear 属性清除浮动

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        #father {
            width: 300px;
            background-color:teal;
            border: 1px solid silver;
        }
        #son1, #son2{
            padding: 10px;
            margin: 20px;
        }
        #son1 {
            background-color: hotpink;
            float: left;
        }
        #son2 {
            background-color: orange;
            float: right;
        }
        /* 关键代码,清除浮动 */
        .clear { clear: both; }
    </style>
</head>
<body>
    <div id="father">
        <div id="son1">box1</div>
        <div id="son2">box2</div>
        <div class="clear"></div>
    </div>
</body>
</html>

页面效果如下图所示。

使用clear属性清除浮动

分析:

我们一般都是在浮动元素后面再增加一个空元素,然后为这个空元素定义 clear: both 来清除浮动。说白了,前面小弟干了太多坏事,后面得大哥出面才能解决。

在实际开发中,凡是用了浮动之后发现有什么不对劲的地方,首先应该检查的是有没有清除浮动。

注意: clear 属性不是应用于浮动元素本身,而是应用于浮动元素后面的空元素。

上一篇:

下一篇:

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号