首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

理解 Css 布局和 BFC

BFC 可以防止 margin 折叠 了解边距合并是另一个被低估的 CSS 技能。在下一个示例中,假设有一个背景颜色为灰色的 div。这个 div 包含两个标签 p。...防止 margin 折叠CSS当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所结合成的外边距称为折叠外边距。...产生折叠的必备条件 再一次,BFC 的工作是把东西装在盒子里,防止它们从盒子里跑出来。 BFC 可以阻止元素被浮动元素覆盖 你将熟悉 BFC 的这种行为,因为使用浮动的任何列类型布局都是这样工作的。...带有 float 类的项 可以通过将包裹文本的 div 设置为 BFC 来防止这种包裹行为。 .text { overflow: auto; } ?...即使没有任何不想要的副作用的情况下,使用 overflow 也可能会让其他开发人员感到困惑。为什么 overflow 设置为 auto 或 scroll?最初的开发者的意图是什么?

1.4K00

理解 CSS 布局和 BFC

BFC 可以防止 margin 折叠 了解边距合并是另一个被低估的 CSS 技能。在下一个示例中,假设有一个背景颜色为灰色的 div。 这个 div 包含两个标签 p。...margin 和外部 div 上的 margin 之间没有任何东西,所以两个会折叠,因此 p 最终与 div 的顶部和底部齐平。...即使没有任何不想要的副作用的情况下,使用 overflow 也可能会让其他开发人员感到困惑。为什么 overflow 设置为 auto 或 scroll?最初的开发者的意图是什么?...不过无论如何,你现在应该已经理解了什么是 BFC,以及如何使用 overflow 或其他方法来包裹浮动,以及知道了 BFC 可以阻止元素去环绕浮动元素,如果你想使用弹性或网格布局可以在一些不支持他们的浏览器中使用...理解浏览器如何布置网页是非常基础的。 虽然有时看起来无关紧要,但是这些小知识可以加快创建和调试 CSS 布局所需的时间。 你的点赞是持续分享好东西的动力,欢迎点赞!

1.1K00
您找到你想要的搜索结果了吗?
是的
没有找到

CSS进阶04-格式化上下文BFC

BFC是Web页面的可视化CSS渲染的部分,是级盒布局发生的区域,也是浮动元素与其他元素交互的区域。 2....这里只讨论CSS2.2中所列条件,当然CSS2.2中root默认也会生成BFC(不过一直没找到文档中的出处,如果有找到的同学还请不吝赐教),但是body默认是不生成BFC的。 3....BFC用途 4.1 BFC可以阻止元素被浮动元素覆盖(防止高度坍塌)。 盒的宽高其实是有着很复杂的计算方法,这一点我们在CSS进阶系列后面的文章中详细说明。这里我们来看一个例子: <!...4.2 BFC可以用来防止margin折叠。 看下面这个例子: <!...4.2 可以看到,div2即使包含在另一个盒中,但是如果与div1在同一个BFC且相邻,一样会产生margin折叠

57030

译|CSS中的间距,前端开发中各种设置间距的优点缺点及实例

没有间距,用户将很难浏览页面并知道哪些内容相关而哪些内容无关。 ? 在本文中,将介绍有关CSS中的间距,实现此间距的不同方法以及何时使用 padding 或 margin 所需的所有知识。...margin 折叠 简而言之,当两个垂直元素具有margin,并且其中一个元素的margin大于另一个元素时,发生边距折叠。在这种情况下,将使用更大的margin,而另一个将被忽略。 ?...内联元素在它的兄弟元素之间添加了一点空间,因为它将元素视为字符。...使用CSS Grid,你可以很容易地使用 grid-gap 添加间距。此外,你不需要关心网格项的宽度或底部空白CSS Grid 为你做者一切!...在检查Facebook的新设计CSS时首先注意到了这一点。 ? 那是一个 ,内联样式宽度:16px,它唯一的作用是在左边缘和包装器之间增加一个空白空间。

11.8K10

前端基础篇之CSS世界

想你每天写css代码有时候也会觉得很痛苦:这个布局的css怎么这么难实现!也经常会有这种感觉,一个看似简单的布局总是要琢磨半天才能实现,偶尔还会出现一些怪异的超出理解的现象。...这是因为我们对css只是大概知道个形,并没有看透css的本质。在同事的推荐下阅读了张鑫旭老师的《css世界》,才发现css跟想象中的不太一样。...特性 1 中内部的盒是指级盒。因为根元素也是BFC,所以我们平常写的div p都是独自占一行。 特性 2 是BFC,所以里面的元素垂直方向的margin会发生折叠。...如果元素没有position的情况下是内联元素,则和内联元素在同一行显示;如果元素没有position属性的情况下是元素,则换行显示。...如果一段文字中没有空格,则该属性无效。下面代码设定空格间隙是20px,也就是说空格现在占据的宽度是原有的空格宽度+20px的宽度: 有空 格,该死......

2K50

59道CSS面试题(附答案)

15、如何DIV+CSS实现3栏布局(左右固定200pX,中间自适应)?...也可以把浮动元素想象成被元素忽略的元素,而内联元素会关注的元素。 17、解释一下 CSS Sprite,以及如何在页面或网站中使用它。...在同一个BFC中,两个毗邻的级盒在垂直方向(和布局方向有关系)的 margin会发生折叠。 BFC决定元素如何对其内容进行布局,也决定与其他元素的关系和相互作用。 40、谈谈你对C规范的理解。...IFC中是不可能有元素的,当插入元素时(如在p中插入div),会产生两个匿名,两者与div分隔开,即产生两个IFC,每个IFC对外表现为元素,与div垂直排列。...53、如何避免文档流中的空白符合并现象? 空白符合并是标准文档流的特征之一,可以通过设置 white-spac修改这一特征,属性值如下。

4.8K50

一看到 KFC、IFC、GFC 和 FFC,大家可能会想到 BFC

简单来说,就是页面中的一渲染区域,并且有一套属于自己的渲染规则,它决定了元素如何对齐内容进行布局,以及与其他元素的关系和相互作用。...每个盒子的左外边框紧挨着包含的左边框,即使浮动元素也是如此。 BFC 的区域不会与浮动 Box 重叠。 BFC 就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然。...BFC,高度并没有产生塌陷了,其原因是在计算 BFC 的高度时,浮动子元素也参与计算 非浮动元素被浮动元素覆盖 <...height: 100vh; background-color: yellowgreen; overflow: hidden; } 效果:因为 BFC 的区域不会与浮动 Box 重叠,所以右侧空白没有了...外边距垂直方向重合的问题 BFC 还能够解决 margin 折叠的问题,例如: * { margin

1K10

css面试点二:BFC(级格式化上下文)+常见布局方案

它是页面中的一渲染区域,并且有一套渲染规则,它决定了其子元素如何定位,以及和其他元素的关系和相互作用。...3.每个元素的margin box的左边, 与包含border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。...在CSS当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所结合成的外边距称为折叠外边距。...200px; height: 200px;background: grey"> 是一个没有设置浮动,也没有触发 BFC,想你这次只是生气时间久了一点,是的。... 是一个没有设置浮动,触发

48320

CSS专题,熟练布局技巧,需知文档流

空白折叠现象 1)标签与标签之间紧密连接,网页上两个内容也是紧密连接,中间没有空格。 2)标签与标签之间中间有一个空格,网页上两个内容之间也有一个空格的间隙。...通过第3)个现象可知,多出的空格折叠了,这就是所谓的空白折叠现象。 2. 高矮不齐,底边对齐 网页上的两个不同的内容出现高低不同时,底边对齐。如图: 3....CSS标准文档流也将标签分为两种等级: 1)元素 霸占一行,不能与其他任何元素并列; 能接受宽、高; 如果不设置宽度,那么宽度将默认变为父亲的100%。...CSS的分类和HTML分类很像,就p不一样:所有的文本级标签,都是行内元素,除了p,p是个文本级,但是是个元素;所有的容器级标签都是元素。 总结如下图: 元素和行内元素的互换 1....inline就是“行内”,一旦,给一个元素设置display: inline; 那么,这个div将立即变为行内元素

74730

前端硬核面试专题之 CSS 55 问

继承:(X)HTML 元素可以从其父元素那里继承部分 CSS 属性,即使当前元素没有定义该属性,比如:color,font-size。 ---- box-sizing 常用的属性有哪些 ?...两个或多个毗邻的普通流中的元素垂直方向上的 margin 会折叠。 浮动元素、inline-block 元素、绝对定位元素的 margin 不会和垂直方向上其他元素的 margin 折叠....创建了级格式化上下文的元素,不和它的子元素发生 margin 折叠 ---- 请解释一下CSS3 的 Flexbox(弹性盒布局模型),以及适用场景 ?...BFC(级格式化上下文)来防止文字环绕的原理来实现的。...即使在浮动里也是这样的(尽管一个包含的边框会因为浮动而萎缩),除非这个包含的内部创建了一个新的 BFC。

2K20

百度Web前端技术学院(1)-HTML, CSS基础

写点东西记录一下的做题过程吧。 CSS 如何工作 CSS 如何工作 Mozilla 的开发者文档讲的很好。 浏览器在展现一个文档的时候,必须要把文档内容和相应的样式信息结合起来展示。...如果值为 capitalize,则要对某些字母大写,但是并没有明确定义如何确定哪些字母要大写,这取决于用户代理如何识别出各个 “词”。 可能的值 值 | 描述 none | 默认。...注释:允许使用负值。 white-space 定义和用法 white-space 属性设置如何处理元素内的空白。 这个属性声明建立布局过程中如何处理元素中的空白符。...左侧固定右侧自适应宽度的两列布局 用两种不同的方法来实现一个两列布局,其中左侧部分宽度固定、右侧部分宽度随浏览器宽度的变化而自适应变化 的方法一: 不使用浮动,使用绝对定位,将左上角的放好位置,右边的设置...Block Formatting Context 的几大用处: 防止 margin 折叠 清除 float 不会环绕 float 元素 相关资料 视觉格式化模型 (visual formatting model

1K30

解析 CSS 格式化上下文

解析 CSS 格式化上下文 ⭐️ 更多前端技术和知识点,搜索订阅号 JS 菌 订阅 ✴️ BFC 级格式化上下文 BFC(Block Formatting Contexts),级格式化上下文。...BFC 实际上就是页面中一渲染区域,该区域与其他区域隔离开来。容器里面子元素不会影响到外部,外部的元素也不会影响到容器里面的子元素。 ? 规范 BFC 内部的盒子会从上至下一个接着一个顺序排列。...每个元素的左侧最外层边界与包含 BFC 的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。BFC 的区域不会与 float box 折叠。...主要作用 创建独立的渲染环境 防止因浮动导致的高度塌陷 防止上下相邻的外边距折叠 如何创建 BFC html 元素本身就是 BFC display === flow-root/inline-block/... 创建 BFC 后 避免折叠 ?

1.1K20

盒模型

,就可能会因此破坏其中一些组件的布局,尤其是当第三方组件在开发 CSS 的过程中没有考虑到使用者会修改盒模型时。...学习CSS并不是学习一两个小技巧,而是要理解这门语言的方方面面,并知道如何将其搭配使用。...学习CSS并不是学习一两个小技巧,而是要理解这门语言的方方面面,并知道如何将其搭配使用。 auto,CSS入门容易,但精通不易。...# 多个外边距折叠 即使两个元素不是相邻的兄弟节点也会产生外边距折叠。在没有其他 CSS 的影响下,所有相邻的顶部和底部外边距都会折叠。 可以给任何元素加上外边距,而不必担心它们前后的元素是什么。...,防止它们折叠 使用 overflow:auto 防止内部元素的外边距跟容器外部的外边距折叠,这种方式副作用最小 如果容器为浮动元素、内联、绝对定位或固定定位时,外边距不会在它外面折叠元素显示为

1.8K20

知识整理之CSS

使用两个冒号::是为了和伪类(CSS2中并没有区别)做区分。考虑兼容性CSS2中已存在的伪元素仍可以使用单引号:语法。但是CSS3中新增的伪元素必须以使用::。...浮动元素、inline-block 元素、绝对定位元素的 margin 不会和垂直方向上其他元素的 margin 折叠 浮动元素的 margin 在垂直方向上也不会发生 margin 折叠即使和它相邻的子元素也不会...折叠的话,金色的条应该位于绿色的最上方,显然,没有发生折叠。...:gold;">B 若 B 和它的 "overflow:hidden" 包含发生 margin 折叠的话,金色的条应该位于绿色的最上方,否则,没有发生。...伪元素清除浮动 上面那种办法固然可以清除浮动,但是我们不想在页面中添加这些没有意义的冗余元素,此时如何清除浮动吗?

1.5K20

前端面试题2(CSS

规则如下: 两个或多个毗邻的普通流中的元素垂直方向上的margin会折叠 浮动元素或inline-block元素或绝对定位元素的margin不会和垂直方向上的其他元素的margin折叠 创建了级格式化上下文的元素...,不会和它的子元素发生margin折叠 元素自身的margin-bottom和margin-top相邻时也会折 介绍一下标准的CSS的盒子模型?...:checked 单选框或复选框被选中 如何居中div如何居中一个浮动元素如何让绝对定位的div居中?...行框的排列会受到中间空白(回车空格)等的影响,因为空格也属于字符,这些空白也会被应用样式,占据空间,所以会有间隔,把字符大小设为0,就没有空格了 为什么要初始化CSS样式 因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的...需要在border外侧添加空白,且空白处不需要背景(色)时,使用 margin 需要在border内测添加空白,且空白处需要背景(色)时,使用 padding 抽离样式模块怎么写,说出思路?

2.8K11

CSS进阶03-定位体系,格式化上下文,常规流

这些属性是相对于盒的包含来指定移动距离的。绝对定位盒脱离文档流。这意味着它们对之后的同胞盒的布局没有影响。同时,即便绝对定位盒有外边距margin,也不同其他任何外边距折叠。...每个元素的margin box的左边, 与包含border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。 BFC的区域不会与float box叠加。...BFC常见用途: 常见的多栏布局,结合级别元素浮动,里面的元素则是在一个相对隔离的环境里运行。 防止margin折叠防止高度塌陷。 4.2....IFC中是不可能有元素的,当插入元素时(如p中插入div)会产生两个匿名div分隔开,即产生两个IFC。每个IFC对外表现为元素,与div垂直排列。...这一暂时没去研究。

1.7K10

由position属性引申的关于css的进阶讨论(包含、BFC、margin collapse)

写这篇文章的起因是源于这篇文章:谈谈面试与面试题 中关于position的讨论,文中一开始就说的这句话: 面试的时候问个css的position属性能刷掉一半的人这是啥情况…… 其实这问题本来打算的是可以顺着一路扯到...对于其它元素,除非元素使用的是绝对位置,containing block 由最近的级祖先元素盒子的内容边界组成。...格式化则表明了在这个环境中,元素处于此环境中应当被初始化,即元素在此环境中应当如何布局等。元素如果创建了BF么BFC决定了如何对其内容进行定位,以及它与其他元素的关系和相互作用。...在一个BFC中,两个相邻的级盒子的垂直外边距会产生折叠。即是在BFC中相邻的元素的垂直边距会折叠(collapse)。...名词解释: 边距折叠:在CSS当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所结合成的外边距称为折叠外边距。

1.1K50

Web前端最全面试宝典- CSS

行内元素的兼容性使用(IE8 以下) Q1)行内元素:会在水平方向排列,不能包含元素,设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效...3)两个外边距一正一负时,折叠结果是两者的相加的和。 7. Sass、LESS是什么?大家为什么要使用他们? 他们是CSS预处理器。他是CSS上的一种抽象层。...默认情况下,block元素宽度自动填满其父元素宽度。 block元素可以设置width,height属性。元素即使设置了宽度,仍然是独占一行。...没有定位,元素出现在正常的流中。...设置左右margin为auto 3)IE6下需在父元素上设置text-align: center;,再给子元素恢复需要的值 11.CSS优先级算法如何计算?

1K10
领券