【发布时间】:2021-07-16 19:47:51
【问题描述】:
我正在使用带有输入字段的 CSS Grid(12 列)。由于我创建表单的方式(表单设计采用 JSON 格式并动态创建),输入字段不是网格的直接子项,而是包含在 div 中。如果我对 div 执行 grid-column: span,我还希望输入字段跨越列 - 但不超过 grid-gap。我已经尝试了多种方法,最好的方法似乎是输入上的 width: 100% 但这忽略了网格间隙。关于如何让输入字段与 div 的宽度相同的任何想法?
对不起,如果我解释得不好 - 这是我的意思的截图:
这里是代码:
.container {
display: grid;
grid-template-columns: repeat(12, 1fr);
grid-gap: 20px;
background-color: black;
}
.fill-width {
width: 100%;
}
.width-4 {
grid-column: span 4;
}
<div class="container">
<input id="field1" class="width-4" placeholder="field1 (4)" />
<input id="field2" class="width-4" placeholder="field2 (4)" />
<input id="field3" class="width-4" placeholder="field3 (4)" />
<div class="width-4">
<input id="field5" placeholder="field5 (4)" />
</div>
<input id="field6" class="width-4" placeholder="field6 (4)" />
<input id="field7" class="width-4" placeholder="field7 (4)" />
<div class="width-4">
<input id="field1" class="fill-width" placeholder="field1 (4)" />
</div>
<div class="width-4">
<input id="field2" class="fill-width" placeholder="field2 (4)" />
</div>
<div class="width-4">
<input id="field3" class="fill-width" placeholder="field3 (4)" />
</div>
</div>
和 codepen 示例: https://codepen.io/ursus_the_bear/pen/mdRQNXM
【问题讨论】: