You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Contact Form 7复选框样式定制:创建6列网格布局复选框

实现Contact Form 7 6列复选框网格布局

嘿,我来帮你搞定这个6列网格的复选框布局问题!咱们分两步来,先把Contact Form 7的表单代码写对,再完善CSS实现预期效果。

首先,在Contact Form 7编辑器里,给你的复选框组套一个统一的容器类,方便后续CSS精准控制:

<div class="select-size">
  [checkbox windows id:windows label_first "Windows"]
  [checkbox doors id:doors label_first "Doors"]
  [checkbox roofline id:roofline label_first "Roofline"]
  [checkbox conservatories id:conservatories label_first "Conservatories"]
  [checkbox gutters id:gutters label_first "Gutters"]
  [checkbox fascias id:fascias label_first "Fascias"]
</div>

接下来是完整的CSS代码,我基于你已有的代码做了优化,不仅实现6列网格,还完善了选中状态和响应式适配:

/* 隐藏原生复选框,用自定义标签替代 */
.select-size input {
  display: none;
}

/* 用Flexbox实现6列网格布局 */
.select-size {
  display: flex;
  flex-wrap: wrap;
  gap: 10px; /* 可调整选项之间的间距 */
}

/* 自定义复选框标签的基础样式 */
.select-size label {
  flex: 1 1 calc(16.666% - 10px); /* 100%/6计算6列宽度,减去gap间距避免溢出 */
  min-width: 120px; /* 小屏幕下的最小宽度,防止标签太窄 */
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #FD484E;
  cursor: pointer;
  font-family: sans-serif;
  transition: all 0.3s ease; /* 选中状态的平滑过渡动画 */
}

/* 复选框选中时的标签样式 */
.select-size input:checked + label {
  background-color: #FD484E;
  color: #fff;
  border-color: #FD484E;
}

关键点说明:

  • 用flex: 1 1 calc(16.666% - 10px)实现精准6列:16.666%是100%除以6的结果,减去gap间距确保选项不会因为额外间距溢出换行。
  • flex-wrap: wrap让布局在小屏幕上自动换行,保证移动端也有良好的显示效果。
  • 替换原兄弟选择器为相邻选择器(+):Contact Form 7在label_first模式下,input和对应label是相邻元素,这个选择器更精准,避免样式冲突。
  • 加入过渡动画:让选中状态的切换更平滑,提升用户交互体验。

内容的提问来源于stack exchange,提问作者spencer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:24:31