如何基于Chota响应式网格实现小屏双列及大屏多列布局适配?
Chota框架暖气控制界面网格调整方案
核心问题分析
Chota是移动端优先的框架,默认<600px小屏下,col-6不会按预期生效(框架默认移动端单列布局),且如果标签和值未放在flex容器内,自然会堆叠。要实现需求得从「单组字段同行」和「多组响应式排列」两个层面调整。
1. 确保小屏时标签与值同行
把每组的标签和值放进一个row容器(Chota的flex容器),给标签和值分别加col类(自动平分宽度),或者用自定义flex样式更灵活:
方案一:纯Chota类实现
<!-- 单组字段结构 --> <div class="field-item"> <div class="row"> <span class="col">Temperatura</span> <span class="col">22°C</span> </div> </div>
row会让内部元素横向排列,col自动平分宽度,小屏下也能保持同行。
方案二:自定义样式(更灵活)
如果需要标签固定宽度、值占剩余空间,可加自定义CSS:
.field-item { display: flex; align-items: center; justify-content: space-between; margin: 0.5rem 0; } .field-item label { flex-shrink: 0; width: 120px; /* 固定标签宽度 */ margin-right: 0.5rem; } .field-item .value { flex-grow: 1; text-align: right; }
对应HTML:
<div class="field-item"> <label>Temperatura</label> <span class="value">22°C</span> </div>
2. 实现多组字段的响应式排列
把所有field-item放进外层row,给每个field-item加Chota的响应式列类,实现「中小屏独占一行,大屏多列」:
<!-- 外层容器 --> <div class="row"> <div class="field-item md-col-12 lg-col-6"> <!-- 单组内容 --> </div> <div class="field-item md-col-12 lg-col-6"> <!-- 单组内容 --> </div> <div class="field-item md-col-12 lg-col-6"> <!-- 单组内容 --> </div> </div>
md-col-12:在≥768px的中屏及以下,每组占满整行lg-col-6:在≥1024px的大屏,每组占12列中的6列(即一行2组)- 如果想大屏一行3组,把
lg-col-6换成lg-col-4即可
关键注意事项
- 所有
col类必须放在row容器内才会生效,之前col-6无效大概率是因为没有嵌套在row里 - Chota的响应式断点:
xs(<600px)、sm(600-768px)、md(768-1024px)、lg(>1024px),可根据需求调整断点类
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

