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
相关产品推荐
相关产品推荐

