本文介绍一种纯 css 方案:利用 `:checked` 伪类与相邻兄弟选择器(`+`)实现点击复选框显示/隐藏关联内容,无需任何 javascript,兼容现代浏览器且语义清晰。
在前端开发中,常需实现“点击展开/收起”交互效果。若仅需基础显隐控制,完全可借助 CSS 原生能力完成,避免引入 JS 的额外开销与复杂性。
核心原理在于:
✅ 正确的 CSS 写法如下:
/* 默认隐藏目标容器 */
.checkbox {
display: none;
}
/* 当 #expand 被勾选时,显示其后紧跟的 .checkbox 元素 */
#expand:checked + .checkbox {
display: block;
}⚠️ 注意事项:
? 推荐优化后的 HTML 结构示例:
对应优化 CSS:
.expand-content {
display: none;
margin-top: 8px;
padding-left: 20px;
}
#expand:checked + label + .expan
d-content {
display: block;
}(此变体通过 label 占位,提升可访问性与点击区域)
总结:纯 CSS 显隐控制轻量、可靠、易维护,适用于表单折叠、FAQ 展开等场景。只要掌握 :checked 与 + / ~ 选择器的配合逻辑,即可零 JS 实现优雅交互。