CSS Grid布局疑问:grid-template-areas设置3行却仅显示2行,如何实现目标3行布局?
CSS Grid布局疑问:grid-template-areas设置3行却仅显示2行,如何实现目标3行布局?
嘿,我看了你遇到的grid-template-areas困惑啦,咱们一步步拆解问题~
首先,你想要的目标布局逻辑完全没问题:
'a a b b b' 'a a b b b' 'c c b b b'
你的代码结构其实是正确的,但之所以看起来不像预期的三行布局,核心问题是没有显式定义每行的高度。
Grid默认会用auto作为行高,它会根据单元格的内容和占据的行范围自动调整高度。你的.item1占据了第1、2行的a区域,这两行的高度会被合并成一块适配item1内容的高度,而.item3所在的第3行高度会单独根据自身内容调整,视觉上就会显得不是规整的三行结构。
解决方法很简单,只需要给你的grid-container添加一行代码,强制让每行高度一致:
.grid-container { display: grid; grid-template-areas: 'a a b b b' 'a a b b b' 'c c b b b'; grid-template-rows: 1fr 1fr 1fr; /* 新增这行,让三行平分容器高度 */ grid-gap: 10px; background-color: #2196F3; padding: 10px; }
这里用1fr表示每行平分容器的可用高度,你也可以换成固定值比如100px 100px 100px,根据你的需求调整就行。
修改后,你就能清晰看到:
.item1占据左上角2×2的方块区域.item2占据右侧3×3的大方块区域.item3占据底部左侧1×2的横向条带
完全符合你想要的布局效果~
备注:内容来源于stack exchange,提问作者Static Bounce
相关产品推荐
相关产品推荐

