当前位置: 首页 > Web前端 > CSS

CSSFFC-GFC

时间:2023-03-30 13:49:38 CSS

FFCFFC的全称是“FlexFormattingContexts”,翻译过来就是“弹性格式化上下文”。FFC生成条件显示属性值设置为“flex”或“inline-flex”的容器。FFC布局规则FFC的布局规则在CSS中有详细的定义。FFC是怎么布局的,看看阮一峰的这篇文章就知道了:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html除了这篇文章,还要额外注意:在FFC布局,float、clear、vertical-align属性不会生效。GFCGFC的全称“GridLayoutFormattingContexts”翻译过来就是“块级格式化上下文”。GFC产生条件显示属性值设置为“grid”或“inline-grid”容器GFC布局规则GFC布局规则在CSS中也有详细定义,详细说明可参见MDN,https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout。让我们通过几个例子来了解GFCClassic页面网格布局的妙用。经线{高度:100%;显示:网格;网格模板列:200px计算(100%-205px);网格模板行:100pxcalc(100%-170px)60px;grid-gap:5px;}.warpdiv{border:1pxsolidaquamarine;}.warp.g-1{网格列开始:1;网格列端:3;}.warp.g-4{网格列开始:1;网格列端:3;

当然我们也可以使用float或者flex来实现同样的效果,但是代码量和复杂度相比GFC会多一些。实现排列效果.list{display:grid;网格模板列:重复(3、1fr);网格模板行:自动;网格列间隙:2px;网格行间距:2px;宽度:400px;}.listdiv{高度:50px;边框:1px纯灰色;
编排由GFC控制,代码量也很少,也很容易理解。任意立方体splicing.cube{display:grid;网格间隙:2px;宽度:300px;height:300px;}.cubediv{border:1px纯灰色;}.cube.g-1{grid-column-start:1;网格列端:3;}.cube.g-3{网格列开始:2;网格列端:4;网格行开始:2;grid-row-end:3;}如果可以使用GFC轻松实现自由拼接效果,如果改用其他方式,一般会使用相对/绝对定位,或者flex来实现自由拼接的效果,复杂度会增加几个层次。最后得出结论,FFC能做的事,通过GFC可以做,GFC能做的事,也可以通过FFC实现。通常弹性布局使用FFC,二维网格布局使用GFC。最后,所有的FFC和GFC也是BFC,它们在遵循自己的规范的同时向下兼容BFC规范。