浮动

本文深入探讨CSS中元素在文档流中的特性,包括块元素和行内元素的行为,以及浮动对布局的影响。特别讲解了BFC(Block Formatting Context)的概念,如何通过设置元素属性来创建BFC,以解决高度塌陷和外边距重叠问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

元素在文档流中有什么特点:
- 块元素
- 块元素会在页面中独占一行(自上向下垂直排列)
- 默认宽度是父元素的全部(会把父元素撑满)
- 默认高度是被内容撑开(子元素)

           - 行内元素
                - 行内元素不会独占页面的一行,只占自身的大小
                - 行内元素在页面中左向右水平排列,如果一行之中不能容纳下所有的行内元素
                    则元素会换到第二行继续自左向右排列(书写习惯一致)
                - 行内元素的默认宽度和高度都是被内容撑开

元素设置浮动以后,将会从文档流中脱离,从文档流中脱离后,
元素的一些特点也会发生变化

脱离文档流的特点:

                块元素:
                    1、块元素不在独占页面的一行
                    2、脱离文档流以后,块元素的宽度和高度默认都被内容撑开

                行内元素:
                    行内元素脱离文档流以后会变成块元素,特点和块元素一样

                脱离文档流以后,不需要再区分块和行内了

高度塌陷的问题:

                在布局中,父元素的高度默认是被子元素撑开的,
                    当子元素浮动后,其会完全脱离文档流,子元素从文档流中脱离
                    将会无法撑起父元素的高度,导致父元素的高度丢失

                父元素高度丢失以后,其下的元素会自动上移,导致页面的布局混乱

BFC(Block Formatting Context) 块级格式化环境

                - BFC是一个CSS中的一个隐含的属性,可以为一个元素开启BFC
                    开启BFC该元素会变成一个独立的布局区域
                - 元素开启BFC后的特点:
                    1.不会被浮动元素所覆盖
                    2.子元素和父元素外边距不会重叠
                    3.可以包含浮动的子元素

                - 可以通过一些特殊方式来开启元素的BFC:
                    1、设置元素的浮动(不推荐)
                    2、将元素设置为行内块元素(不推荐)display: inline-block
                    3、将元素的overflow设置为一个非visible的值
                        - 常用的方式 为元素设置 overflow:hidden 
						  开启其BFC 以使其可以包含浮动元素
<style>
        .box1{
            width: 200px;
            height: 200px;
            background-color: #bfa;
            /* float: left; */
           /* overflow: hidden; */
		   /* 开启BFC后  子元素和父元素外边距不会重叠*/
        }
        .box3{
            width: 100px;
            height: 100px;
            background-color: yellow;
            margin-top: 100px;
        }
		
    </style>
</head>
<body>

    <div class="box1">

        <div class="box3"></div>
    </div>

左为开启BFC的效果没有开启BFC的效果

clear属性

如果不希望某个元素因为其他元素浮动的影响而改变位置,
可以通过clear属性来清除浮动元素对当前元素所产生的影响

            clear
                - 作用:清除浮动元素对当前元素所产生的影响
                - 可选值:
                    left 清除左侧浮动元素对当前元素的影响
                    right 清除右侧浮动元素对当前元素的影响
                    both 清除两侧中最大影响的那侧

                原理:
                    设置清除浮动以后,浏览器会自动为元素添加一个上外边距,
                        以使其位置不受其他元素的影响
 

## clearfix

 这个样式可以同时解决高度塌陷和外边距重叠的问题,
当你在遇到这些问题时,直接使用clearfix这个类即可 */
        .clearfix::before,
        .clearfix::after{
            content: '';
            display: table;
            clear: both;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值