On this page
css
现代布局方案对比
请对比Flex布局与Grid布局的核心特性差异,说明flex:1的具体含义(flex-grow/flex-shrink/flex-basis的复合写法),并演示如何用Grid实现响应式卡片布局。
考察点分析
核心能力维度:CSS布局能力、现代布局方案理解、响应式设计实践
技术评估点:
- Flex与Grid布局的核心设计哲学差异
- flex缩写属性解析能力
- Grid布局实现响应式设计的熟练程度
- 自适应布局与固定布局的应用场景判断
- CSS函数(minmax, repeat)与媒体查询的配合使用
技术解析
关键知识点
Flex布局(一维布局) vs Grid布局(二维布局) > flex复合属性解析 > Grid响应式布局方案
原理剖析
Flex布局基于轴线(main/cross axis)进行单方向布局,适合组件级排列。Grid通过显式定义行与列创建二维布局系统,适合整体页面结构。flex:1是flex-grow:1
、flex-shrink:1
、flex-basis:0%
的缩写,表示元素可伸缩且基准值为0。
常见误区
- 误将Grid用于简单线性布局
- 混淆flex-shrink默认值(默认1)
- 响应式设计过度依赖媒体查询(应优先考虑auto-fill/minmax)
问题解答
Flex与Grid核心差异:
- Flex:一维流动布局,通过
flex-direction
控制主轴方向,适合列表、导航栏等线性排列 - Grid:二维矩阵布局,通过
grid-template
定义行列结构,适合仪表盘、卡片布局等复杂排版
flex:1含义: 复合属性等价于:
Grid响应式卡片实现:
解决方案
编码示例
优化说明:
auto-fit
自动填充可用空间,避免空白间隙minmax(250px,1fr)
确保最小列宽,保持内容可读性- 时间复杂度O(1)(CSS引擎自动计算布局)
深度追问
何时优先选择Flex布局? 组件内元素对齐、等高等宽排列场景
Grid布局的显式网格与隐式网格区别? 显式通过template定义,隐式由auto-rows/columns控制
fr单位与传统百分比的区别? fr按剩余空间比例分配,百分比基于父容器尺寸
Last updated 5 months ago.