老师,关于BFC

老师,关于BFC

	<style>
	*{
        margin: 0;
        padding: 0;
    }
    p {
        color: #f55;
        background: yellow;
        width: 200px;
        line-height: 100px;
        text-align:center;
        margin: 30px;
    }
    p.box2{
    	overflow: hidden;
    }
    /*div{
    	overflow: hidden;
    }*/
	</style>
</head>
<body>
	<p class="box1">看看我的 margin是多少</p>
	<p class="box2">
		<span>看看我的 margin是多少</span>
	</p>

	<!-- <p>看看我的 margin是多少</p>
	<div>
		<p>看看我的 margin是多少</p>
	</div> -->
</body>

上面的例子中,为什么我将下面的p,添加一个class变成BFC(overflow:hidden),他们的margin还是重叠

但是使用一个div将下面的p变成一个BFC,margin就不会重叠

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕言 2020-07-14 10:54:59

同学你好,按照同学提供的例子,如果使用overflow: hidden;清除两个元素垂直方向的margin重叠,要使用下方的结构才可以

http://img1.sycdn.imooc.com//climg/5f0d1e0d09ff8a7304630132.jpg

bfc是一个独立的布局环境,其中的元素布局不受外界的影响。在第一段代码中,两个p标签在一个布局环境中,第二个p标签的子元素与第一个p标签在不同的布局环境中

同学可以参考老师讲解的例子,再理解下。

链接:https://class.imooc.com/lesson/1033#mid=24900

如果有不明白的地方,可以再提问,老师帮助解答。祝学习愉快~

好帮手慕言 2020-07-13 14:33:47

同学你好,两个p标签的边距重叠了,p外层再套一层标签,设置overflow: hidden;是为了让p标签放在不同的 BFC 容器中,这样就可以解决边距重叠的现象了。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 提问者 qq_勿忘初心_H #1
    我知道是这个意思,但是为什么两个p是一个BFC,每个p不是一个单独的BFC呢??怎么区分这个BFC啊
    2020-07-13 19:08:50
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师