FC是指页面中一篇渲染区域,渲染区域内使用的格式化上下文的渲染规则,决定了该区域以及其子元素如何定位。当然,使用同的渲染规则,也会对其他元素的起到相互关系的作用。主要有哪些FC?...就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然;BFC的应用防止margin发生重叠防止发生因浮动导致的高度塌陷怎么生成BFCfloat的值不为none;overflow...IFC中时不可能有块级元素的,当插入块级元素时(如p中插入div)会产生两个匿名块与div分隔开,即产生两个IFC,每个IFC对外表现为块级元素,与div垂直排列。...item)上定义网格行(grid row)和网格列(grid columns)为每一个网格项目(grid item)定义位置和空间。...伸缩容器外和伸缩项目内的一切元素都不受影响。简单地说,Flexbox 定义了伸缩容器内伸缩项目该如何布局。
当B盒是相对定位,则B盒之后的盒定位时就当B没有移动一样来计算,也就是相对B盒标准流中的位置来计算。...BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然。 计算BFC的高度时,浮动元素也参与计算。 如何生成BFC: 根元素,即HTML元素。...BFC常见用途: 常见的多栏布局,结合块级别元素浮动,里面的元素则是在一个相对隔离的环境里运行。 防止margin折叠。 防止高度塌陷。 4.2....item)上定义网格行(grid row)和网格列(grid columns)为每一个网格项目(grid item)定义位置和空间。...伸缩容器中的每一个子元素都是一个伸缩项目。伸缩项目可以是任意数量的。伸缩容器外和伸缩项目内的一切元素都不受影响。简单地说,Flexbox定义了伸缩容器内伸缩项目该如何布局。
,可是现在随着用户使用终端设备的多样化,平板手机已经很常见,所以如何制作适合手机使用的网页?...伸缩布局决定的特性是让伸缩项目可伸缩,也就是让伸缩项目的宽度或高度自动填充伸缩容器额外的空间,这可以用flex属性来完成。...minimum-scale:允许用户缩放到的最小比例。 1.3.3 网格视图 在设计网页时,使用网格视图非常有用。它可以更轻松地在页面上放置元素。...这个间隙是通过 .rows 类上的负边距设置第一行和最后一列的偏移。 网格列是通过跨越指定的 12 个列来创建。 例如,设置三个相等的列,需要使用用三个.col-sm-4 来设置。...站点引用 Bootstrap 插件的方式有两种: 单独引用:使用 Bootstrap 的个别的 *.js 文件。一些插件和 CSS 组件依赖于其他插件。
然而,浮动布局存在一些显著的缺陷,比如清除浮动(clearfix)问题,需要额外的技巧来防止父元素的高度坍塌。...每一列都具有固定的宽度,并通过 margin 保持间距。 3.2 创建液态网格 液态网格可以根据视口宽度自动调整列的宽度。通过使用 calc() 函数,可以轻松地进行计算。...这些问题在现代布局方法如 Flexbox 和 CSS Grid 中得到了更好的解决。 1. 清除浮动(Clearfix)问题 当使用浮动布局时,一个最常见的问题是清除浮动(clearfix)。...无法轻松实现复杂的网格布局 浮动布局更适合简单的布局需求。当需要实现复杂的网格布局(如多列、多行且包含嵌套的子网格)时,浮动布局的代码会变得异常复杂且难以维护。...其他特性: Offset列:使用offset类为列增加空白间距。 Order类:使用order类轻松改变列的显示顺序。
可以使用长度值(如像素、百分比等)、fr单位(用于创建可伸缩的列和行)以及其他单位来指定。grid-gap(或column-gap和row-gap)用于指定网格轨道之间的间距。...justify-content和align-content当网格容器中有多余的空间时,justify-content和align-content属性用于在网格容器的主轴和交叉轴上分布网格项目。...CSS Grid布局可以方便地创建卡片式布局,包括设置卡片的宽度、高度、间距以及排列方式。...(二)带有不同大小列的布局如果想要创建一列宽度为三分之一,另一列为三分之二的布局,可以使用以下代码:将父元素设置为网格容器,display: grid。...768px时,将三列布局切换为单列布局。
今天,我们就来聊聊如何使用Grip和Flex这两种强大的CSS布局技术,让你的网站在任何设备上都能完美呈现。1....: auto auto; /* 创建两行,高度自适应 */}在这个例子中,.container将会被分成三列,每列的宽度相等,高度则根据内容自适应。...今天,我们就来聊聊如何使用媒体查询和现代CSS特性,让你的网站像一个聪明的大脑一样,根据不同的设备和环境做出相应的调整。1. 媒体查询:让网站“看懂”设备首先,让我们来聊聊媒体查询。...600px时,字体大小为14px;当屏幕宽度在601px到1024px之间时,字体大小为16px;当屏幕宽度大于等于1025px时,字体大小为18px。...602px时,卡片项会垂直排列;当容器的宽度大于602px时,卡片项会水平排列。
容器高度固定 当我们将容器的高度固定后,在这种情况下,其内部项目的高度会「均分」容器高度。也就是当拥有多个项目时它们被分成大小相同的行。 4. 创建网格单元 默认情况下,Grid将创建单列布局。...随着容器宽度发生变化,当容器宽度小到一定程度,即第一列的宽度小于图像的设定宽度时,就会发生如下的变化。 基于百分比的列的宽度大小会按照容器宽度*N%变化,当列宽度小于图像宽度时,图像从列中溢出。...此时我们用gap来设置所有列和行之间添加了固定量的空间 看看在%和fr之间切换时会发生什么: 当使用基于%的列时,内容会溢出到网格父容器之外。这是因为%是使用总网格区域来计算的。...如何抉择 在构建显示布局时,我们可以通过使用areas和行/列都可以达到目的,但是呢,使用areas时,它允许我们给grid分配语义含义,而不是使用晦涩难懂的行/列数字。...也就是说,当网格具有固定数量的行和列时,areas效果最佳。grid-column 和 grid-row 可以在隐式网格中很有用。
3.3.2 BFC 可以包含浮动的元素 前面说过,父元素没有设置高度时,子元素的浮动会导致父元素表现为 0 高度,也就是说正常情况下父元素无法包含浮动的子元素。...这是 W3C CSS2.1 规范中的一个概念。它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系、相互作用。...4.1.3 GFC: 当为一个元素设置 display:grid 的时候,此元素将会获得一个独立的渲染区域,我们可以通过在网格容器(grid container)上定义网格定义行(grid definition...rows)和网格定义列(grid definition columns)属性各在网格项目(grid item)上定义网格行(grid row)和网格列(grid columns)为每一个网格项目(grid...伸缩容器外和伸缩项目内的一切元素都不受影响。简单地说,Flex box 定义了伸缩容器内伸缩项目该如何布局。
它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。...清除浮动影响:当父元素内部有浮动的子元素时,父元素的高度可能会塌陷(无法正确包裹住浮动的子元素)。利用 BFC 可以解决这个问题网格格式化上下文)定义:GFC 是 CSS3 中 grid(网格)布局模块所创建的一种格式化上下文,它提供了一种二维的布局方式,能像表格一样将页面划分为行和列...例如,可以使用固定像素值、百分比或者 fr(fraction,分数单位,表示剩余空间的分配比例)来定义列宽和行高。一列宽100px,第二列占剩余空间的1份,第三列宽200px */ grid-template-rows: 50px 100px; /* 定义两行,第一行高50px,第二行高100px
然后这并没有改变子元素的显示方式,因为我们只创建了一列。这里我们需要创建网格轨道来创建更多的列。一个网格轨道是相邻网格线之间的空间,实质就是行或者列。在上图中,每一个列之间的每个空间就是轨道。...那如何定义宽度可变的表格呢? 使用像素单位是没法做自适用的布局的 其实我们有fr这个单位,fr代表网格容器中可用空间的一小部分。所以我们切换px到fr。...注意:根据DRY原则,我们使用grid-template-columns: repeat(3, 1fr)定义多个相等宽度的列 如何定义宽度不等的列 我们可以仅仅改变份数的个数 .parent { display...我们同样可以使用混合单位。我们可能想要一列宽度是固定的,其他两列宽度相等。...我们好像又回到了刚才的问题了,我们如何实现可变的布局呢?每一列宽度都是固定的200px,当没有足够空间留给下一个元素的时候,下一个元素会自动切换到下一行。但是我们想要的是布满剩下的空间。
CSS Grid 是一种为 Web 开发创建网站布局的方式。它已经存在了很多年,随着更多浏览器的支持,它终于变得越来越流行。 接下来我们将了解下 CSS Grid 及其工作原理。了解下如何使用它。...如今,设计师和开发人员正在使用各种布局系统,如 Flexbox 甚至纯 CSS 来创建令人惊叹的响应式网站。但是当涉及到某些任务时,这些方法中的每一种都有其自身的局限性。...提供控制项目放置在网格区域内后如何对齐以及网格整体对齐方式的能力。 提供使用像素创建使用固定轨道大小的网格的能力 - 将网格设置为适合您所需布局的指定像素。...使用 CSS 网格的好处 在构建网页时使用 CSS Grid 有很多好处。主要好处之一是它可以更轻松地创建复杂的布局。...grid-template-rows:此属性定义行数和每行的高度。 grid-gap:此属性定义列和行之间的空间。 网格子属性 CSS Grid 中的子属性用于定义网格项的大小、位置和其他方面。
元素浮动之后,会让它跳出文档流,也就是说当它后面还有元素时,其他元素会无视它所占据了的区域,直接在它身下布局。...格式上下文 Formatting context 是 W3C CSS2.1 规范中的一个概念。它是页面中的一块渲染区域,有一套渲染规则决定了其子元素将如何定位,以及和其他元素的关系和相互作用。...反之也如此; 计算 BFC 的高度时,浮动元素也參与计算。...; 当 IFC 中盒子的总宽度少于包含它们的行框时,其水平渲染规则由 text-align 属性值来决定; 当一个行内元素超过父元素的宽度时,它会被分割成多个盒子,这些盒子分布在多个行框中。...网格布局格式化上下文 GFC( GridLayout Formatting Contexts ),当一个元素设置为 display:grid 的时候,此元素将获得一个独立的渲染区域,可以在网格容器上定义网格行和列
(当table box和table wrapper box中未使用table element的值时,将使用初始值initial values替代。) ?...row group占据与其包含的行相同的网格单元格。 column box占用一列或多列网格单元格。Column boxes按照它们出现的顺序彼此相邻放置。...如果它们被渲染,CSS 2.2没有定义列和表的宽度。当使用'table-layout:fixed'时,开发者不应该忽略第一行的列。 以这种方式,一旦接收到完整的第一行,用户代理就可以开始进行表格布局。...当“height”属性导致表格变高时,CSS 2.2没有定义多余的空间如何分布。...CSS 2.2没有定义表单元格和表行的高度是如何用百分比值指定其高度的。CSS 2.2没有定义行组上“高度”的含义。 在CSS 2.2中,单元格盒的高度是内容所需的最小高度。
如果改变大小, GridLayout将相应地改变每个网格的大小,以使各个网格尽可能地大,占据Container容器全部的空间。 ...如果inset为负,控件会超出显示区,使容器中各个组件呈网格状布局,平均占据容器的空间。当所有组件大小相同时用此布局。...组件被添加到容器划分好的单元格中。当容器发生改变(伸缩)时,单元格也随之伸缩,装载在单元格里的组件也相应的会进行伸缩。 以下图为例:此容器被分为4行5列。...由图可看出,每一列的宽度并不是固定的,也不是平均宽度的。同理每一行的高度也不是均分的,可以按照实际情况进行分配列的宽度和行的高度。组件可以放在容易的一个cell单元格中,也可以占几个单元格。...(2)、当窗口的大小发生改变时,在tableLayout布局下得组件也会自动改变,按%比来分配每行,每列的大小。
当项目超出已定义的网格范围时生效。...100px,最大高度自适应内容 */ } grid-auto-flow 控制网格项目如何自动填充和排列。...column:按列填充。 dense:当row或column与dense一起使用时,如果网格中有空缺,新项目将尝试填补这些空缺,而非仅仅添加到网格末尾。...*/ } } 首先使用CSS Grid创建了一个自适应列宽的网格布局。...每个网格项(子元素)内部使用Flexbox,使内容垂直居中。当屏幕宽度小于768px时,通过媒体查询切换到单列布局,以适应移动设备。
在这个迷你 CSS 盒子模型教程中,我们将快速了解 CSS 盒子模型是什么以及它是如何工作的。 在谈论 CSS 中网站的设计和布局时,使用的是盒子模型。...或者换句话说,当向元素添加边距、内边距和边框时,元素的总高度和总宽度不会增加。 CSS盒子模型的组成部分: 1、内容: 这是 CSS 盒子模型的主要元素。...其中最好的是: CSS 网格布局 Firefox 开发工具 Firefox 拥有惊人的 CSS 开发者工具。其中之一是网格容器。当我们检查一个网格项时,它会可视化整个网格容器的布局。...flex-direction 属性改变 flexbox 的方向。默认情况下,它设置为row。但是我们可以把它改成一列,把弹性项目放在一列中。...您还可以尝试 CSS 网格图片库以了解有关 CSS 网格的更多信息。 如何创建 CSS 网格布局? 要创建 CSS 网格布局,我们创建一个容器并将其 display 属性设置为网格。
能轻松实现等列宽布局(与每一列里面的内容无关) 为了阐述其多样的属性和可能性,让我们假设下面有这样的布局用例: header...只需把.content的order属性设置为-1,那么这一列就会出现在前面,这本例就是最左边。...这个属性是以下独立属性的简写: flex-grow:一个数字,指明元素如何相对其他flex项来拉伸 flex-shrink:一个数字,指明元素如何相对其他flex项来收缩 flex-basis:元素的长度...例如,想得到三个等宽的列,只需给每一列设置flex:1,其他什么都不用做: nav, aside, .content { flex: 1; } 如果你需要.content占据和的,如今,在针对整个页面进行布局时,CSS网格是更好的方案,但我们仍然值得去了解flexbox能做的那些事情。
当我遇到一个新产品时,我首先想到的是他们如何实现CSS。当我遇到Meta的Threads时也不例外。我很快就探索了移动应用程序,并注意到我可以在网页上预览公共帖子。...:第一列网格被命名为--barcelona。...2; grid-column: 1; } 头像位于第一列中,跨越了前两行。...这是带有和不带有padding-top处理的头像的前后外观: 应用padding-top的另一个原因可能是将头像下移并使其更接近线条。 对网格行使用奇数值 奇数值作为网格行的高度是出于什么考虑?...网格的内联CSS变量 我很高兴看到像Threads这样的大型应用程序正在使用我和许多其他人提倡的东西。 在用户个人资料中,选项卡网格布局是使用包含选项卡数的内联CSS变量构建的。 很有用。
“你开发的界面为啥在我的屏幕里这么小啊?” “这个界面为啥在我这里会出现横向滚动条啊?” 大家在进行前端界面开发时,有没有遇到这些类似的问题呢?又是如何解决的呢?...网格(Grid)布局 网格布局(Grid)是CSS(层叠样式表,为网页添加页面样式的一种计算机语言)布局方案的一种,也是泛用性最广泛的一种。...当对某个组件设置了自适应之后,组件会根据内部的内容动态的变化自己的高度或宽度,比如文本框,会根据输入的文字内容来动态调节自己的框体大小,附件单元格会按照数据的多少来扩展高度。...而如果页面中有两列都设置了占比为1,这两列在整个页面中会按照各自占据1/2的范围来填充,如果有一列设置了1份,另一列设置了2份,那么最终的填充效果为设置为1的列占据了1/3,而另外一列占据2/3。...行列自动扩 活字格的每个行列,都可以设置以上3种模式,而占用多行区域的单元格,设置一行或者一列时,这个容器区域内部会自动扩展。比如:表格,图文列表,数据透视表,页面容器单元格,标签页,选项卡等。
如果计算机的计算能力足够强大,是不是人这个东西也可以用物理量进行表示。 网格布局 CSS 网格是一个用于 web 的二维布局系统。利用网格,你可以把内容按照行与列的格式进行排版。...如图: 然后我们对css规则做点改变,来了解网格是如何工作的。 首先,将容器的display属性设置为grid来定义一个网络。与弹性盒子一样,将父容器改为网格布局后,他的直接子项会变为网格项。...2fr可用空间,余下的两列各被分配了1fr的可用空间,这会使得第一列的宽度是第二第三列的两倍。...另外,fr可以与一般的长度单位混合使用,比如grid-template-columns: 300px 2fr 1fr,那么第一列宽度是300px,剩下的两列会根据除去300px后的可用空间按比例分配。...显式网格是我们用grid-template-columns 或 grid-template-rows 属性创建的。而隐式网格则是当有内容被放到网格外时才会生成的。
领取专属 10元无门槛券
手把手带您无忧上云