CSS中BFC与浮动的搞基

发布于 2022-09-02 16:00:50 字数 1486 浏览 30 评论 0

css BFC和浮动搞起基来还真是难懂,话不多说,直接上demo
1、
clipboard.png
代码:

<div class="demo-block">
     <div style="float: left; width: 100px; height: 50px; margin: 50px;">float left <br>margin: 50px;</div>
     <div style="overflow: hidden; width: 200px; height: 50px; margin: 50px 0 50px 60px;">overflow hidden <br>margin: 50px 0 50px 60px;</div>
</div>

左边的div称为A,右边的称为B。

疑惑:既然 A 脱离了常规文档流,B 的左外边距必须足够 >= A.width + A.marginRight 才起作用。那为什么 B 还能认出 A 来,并且紧接在 A 的 margin box 右侧。

2、

clipboard.png
代码:

<div class="demo-block">
    <div style="float: left; width: 100px; height: 50px; margin: 50px;">float left <br>margin: 50px;</div>
    <div style="display: inline-block; width: 200px; height: 50px; margin: 50px 0 50px 60px;">display inline-block <br>margin: 50px 0 50px 60px;</div>
</div>

疑惑:A 和 B 还发生了 margin 折叠??

w3cplus中有一篇文章,里面说到

浮动和绝对定位不与任何元素产生 margin 折叠

这与demo2是否冲突?

好难理解,希望前辈们能不吝赐教!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白鸥掠海 2022-09-09 16:00:51

第一个问题,脱离文档流只是一个比较形象的说法,它其实并没有真正完全脱离出来,还是会影响后面的元素。如果后面跟着一个普通的块级元素,则块级元素是会占据浮动元素原来的位置,就这一点上,比较形象的说法就是“脱离文档流”。但对于内敛元素,它会环绕浮动元素。对于触发BFC的元素,它也不受浮动元素的影响。

第二个问题没太明白你说啥。margin合并只会发生在垂直方向,水平方向永远都不会有margin合并的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文