问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

哪本CSS书对BFC IFC等分层及页面渲染原理讲的比较透彻的

发布网友 发布时间:2022-04-28 13:19

我来回答

2个回答

懂视网 时间:2022-04-28 17:40

本篇文章给大家分享的内容是关于盒模型以及BFC,有需要的朋友可以参考一下,希望可以帮助到有需要的朋友

标准盒模型与IE盒模型

开发者们都知道,由于历史遗留问题与既定标准的发展,存在着两个css盒模型。即W3C的标准盒模型以及IE的怪异盒模型。在css中,可以用box-sizing去定义元素的盒模型。

比较这两个盒模型的差异之前,我们先来看一张图:

1367336290-55cf27554e5e4_articlex.png

先不讨论宽高,我们把一个元素的组成分为:content、padding、border、margin。

标准盒模型(box-sizing: content-box),即W3C标准中默认的盒模型。它规定,一个元素的宽高并不包含padding和border,那么它在渲染时的宽高计算公式如下:

width = content width;
height = content height;

IE盒模型(box-sizing: border-box),则恰恰相反,它的宽高实际上是包含padding和border的,所以

width = content width + padding + border;
height = content height + padding + border;

24990183-5beb00a42c895_articlex.jpg

至此,两种盒模型的区别应该挺明白的了吧。接下来我们讲讲有关BFC的东西。

什么是BFC

BFC,即 Block Formatting Context 直译为 “块级格式化上下文”。MDN上的定义为:

A block formatting context is a part of a visual CSS rendering of a Web page. It is the region in which the layout of block boxes occurs and in which floats interact with other elements.

其是Web页面的可视化CSS渲染的一部分,是布局过程中生成块级盒子的区域,也是浮动元素与其他元素的交互限定区域

深入了解 BFC 之前,我们看看,什么是 “外边距重叠”。

外边距重叠(Collapsing margins),指的是毗邻的两个或多个外边距 (包括父子元素) 会合并成一个外边距。其中所说的 margin 毗邻,可以归结为以下两点:

  1. 这两个或多个外边距没有被非空内容、padding、border 或 clear 分隔开。

  2. 这些 margin 都处于普通流中。

BFC原理

  • 浮动定位和清除浮动时只会应用于同一个BFC内的元素

  • 浮动不会影响其它BFC中元素的布局,而清除浮动只能清除同一BFC中在它前面的元素的浮动

  • 外边距折叠也只会发生在属于同一BFC的块级元素之间

  • 因此,我们常常通过建立BFC来防止外边距重叠的发生。

    建立BFC

    通过以下方式可以使元素成为一个BFC:

  • 浮动(float的值不为none)

  • 绝对定位元素(position的值为absolute或fixed)

  • 行内块(display为inline-block)

  • 表格单元(display为table、table-cell、table-caption等HTML表格相关属性)

  • 弹性盒(display为flex或inline-flex)

  • overflow不为visible

  • 984218723-5beb00a3dafe7_articlex.png

    BFC其他应用场景

    1、由于BFC在计算高度时,其所包含的所有元素,包括浮动元素都是参与计算的。所以甚至可以使用BFC来达到清除浮动的效果。

    2326640383-5beb00a3d282f_articlex.png

    创建BFC之后:

    2405935527-5beb00a3d5e4c_articlex.png

    2、由于BFC与float元素是不会发生重叠的,根据这个特性,可以做到自适应两栏布局。由于左边元素浮动,造成右边元素的背景沾满了整个容器。

    376697016-5beb00a3d844a_articlex.png

    将右边元素改成BFC之后:

    1087506809-5beb00a3d8689_articlex.png

    热心网友 时间:2022-04-28 14:48

    看 W3C 或者 MDN 的解释就可以了,无非是对盒模型之间关系的阐述
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    国家对腾讯已经作出解除音乐版权处罚,为什么网易云还是很 市场监管总局依法对腾讯控股有限公司作出责令解除网络音乐 腾讯放弃音乐独家版权,绝大部分独家协议已按期解约 高级BEC和中级口译哪个难? 三级口译是什么样的水平 高级日语口译大概是什么水平 高级口译常用谚语 品牌型号怎么填写 送刀剑是什么风水 送礼送菜刀是什么意思 最强猎人电子书txt全集下载 《最强猎人》最新txt全集下载 经常吃什么对男人的性功能好 男生吃什么补身体 男生吃什么食物对身体好 男孩子补身体应该吃什么 男人平时吃什么对身体好 中国银行的电子借记卡能够在ATM机存钱和取钱吗? 中国银行准贷记卡收年费吗?ATM取款收费吗 心情经常郁闷不开心怎么办? 中国银行的白金贷记卡往里存钱可以在ATM取吗? 中行信用卡先存后取问题 心情郁闷低落时该怎么调节,自己好像完全写在脸上 不小心往中国银行信用卡里存了一万块钱,怎么把他取出来 自己心情不好特别郁闷时,怎样才可以调节? 300平别墅装修一般多少钱 路灯节能控制器的具体做法 装修注意些什么? 100平米的房子装修要多少钱 昆明市滇缅大道左转西园北路前这个红绿灯左转灯亮,直行闯红灯了会被拍照罚款吗?谢谢 Word文档如何设置成一张纸上打印多页文档? 请问如何用word或者excel在同一张纸上打印多个相同内容?我裁下来用... 打印WORD文档时怎么设置才能把4页打印在一张纸上? 怎样在word中一页纸打印4份相同的内容(节省纸张) Web前端开发有哪些良好的编程习惯? 请问谁知道兄弟7010怎么恢复清零啊! brother mfc-7340 灌满墨了怎么还是提示墨粉量低 ? DCP7010兄弟打印机出现Scanner locked后,关机再开机无效。求助解锁方法。 DCP7010打印机故障开机显示0 Auto-Diagnost? 兄弟打印机7010出现stack copies怎么处理才可以恢复正常打印? 我有一台DCP7010打印机,将插头插过以后,机子就不能用了,显示屏下部的字母一直滚动不停,请教高手解决。 兄弟dcp7010把photo改成auot关机在开又变回来了怎么办 mfc-7420怎么恢复出厂设置我的复印机怎么不行呢? 兄弟DCP-7010打印机刚加墨粉总显示TONER LIFT END,请问怎么办 孕妇吃了料酒做的菜有影响吗 坐月子能用米酒做菜吗 孕妇可以喝米酒蛋花汤吗 糯米酒什么人不能喝 那一刻,阳光如此温暖800字作文 那一天 阳光好温暖 作文