0
点赞
收藏
分享

微信扫一扫

CSS的浮动与清除浮动

查拉图斯特拉你和他 2022-04-18 阅读 106

1.1 浮动特性

设置了浮动(float)的元素最重要特性:

  1. 脱离标准普通流的控制(浮) 移动到指定位置(动), (俗称脱标)

  2. 浮动的盒子不再保留原先的位置
    在这里插入图片描述

  3. .如果多个盒子都设置了浮动,则它们会按照属性值一行内显示并且顶端对齐排列。在这里插入图片描述

  4. 浮动元素会具有行内块元素特性。

  5. 任何元素都可以浮动。不管原先是什么模式的元素,添加浮动之后具有行内块元素相似的特性。

  6. 如果块级盒子没有设置宽度,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定 浮动的盒子中间是没有缝隙的,是紧挨着一起的

  7. 行内元素同理

2.2 浮动布局注意点

  1. 浮动和标准流的父盒子搭配。
  2. 先用标准流的父元素排列上下位置, 之后内部子元素采取浮动排列左右位置
  3. 一个元素浮动了,理论上其余的兄弟元素也要浮动。
  4. 一个盒子里面有多个子盒子,如果其中一个盒子浮动了,那么其他兄弟也应该浮动,以防止引起问题。
  5. 浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流.

3. 清除浮动

3.1 为什么需要清除浮动?

由于父级盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为 0 时,就会影响下面的标准流盒子。在这里插入图片描述


    <style>
        .box {
            width: 800px;
            border: 1px solid blue;
            margin: 0 auto;
        }
        
        .damao {
            float: left;
            width: 300px;
            height: 200px;
            background-color: purple;
        }
        
        .ermao {
            float: left;
            width: 200px;
            height: 200px;
            background-color: pink;
        }
        
        .footer {
            height: 200px;
            background-color: black;
        }
   

    <div class="box">

        <div class="damao">一左边</div>
        <div class="ermao">二右边</div>
    </div>
    <div class="footer"></div>


展示图详情:
在这里插入图片描述

3.2 清除浮动本质

  •  清除浮动的本质是清除浮动元素造成的影响
  •  如果父盒子本身有高度,则不需要清除浮动
  •  清除浮动之后,父级就会根据浮动的子盒子自动检测高度。父级有了高度,就不会影响下面的标准流了

3.3 清除浮动

额外标签法也称为隔墙法,这样方便使用。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>清除浮动之额外标签法</title>
    <style>
        .box {
            width: 800px;
            border: 1px solid blue;
            margin: 0 auto;
        }

        .damao {
            float: left;
            width: 300px;
            height: 200px;
            background-color: purple;
        }

        .ermao {
            float: left;
            width: 200px;
            height: 200px;
            background-color: pink;
        }

        .footer {
            height: 200px;
            background-color: black;
        }

        .clear {
            clear: both;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="damao">大毛</div>
        <div class="ermao">二毛</div>
        <div class="ermao">二毛</div>
        <div class="ermao">二毛</div>
        <div class="ermao">二毛</div>
        <!-- <div class="clear"></div> -->
        <!-- 这个新增的盒子要求必须是块级元素不能是行内元素 -->
        <span class="clear"></span>
    </div>
    <div class="footer"></div>

</body>

</html>

清除浮动 —— 父级添加 overflow

.box {
            /* 清除浮动 */
            overflow: hidden;
            width: 800px;
            border: 1px solid blue;
            margin: 0 auto;
        }

清除浮动 —— :after 伪元素法

:after 方式是额外标签法的升级版。也是给父元素添加
.clearfix:after { 
 content: ""; 
 display: block; 
 height: 0; 
 clear: both; 
 visibility: hidden; 
} 
.clearfix { /* IE6、7 专有 */ 
 *zoom: 1;
} 

4.4总结

在这里插入图片描述

举报

相关推荐

0 条评论