侧边栏BEM命名推荐统一用sidebar为block名,如sidebar、sidebar__item;动画用max-height或transform替代height过渡;active状态需严格使用sidebar__item--active;隐藏/唤出宜用transform+fixed避免重排。侧边栏容器的BEM命名是否必须用sidebar作为block名不是必须,但sidebar是语义最直接、团队协作中冲突概率最低的选择。用nav容易和全局导航混淆,用aside又和HTML语义标签重复,反而增加理解成本。实操建议:统一以sidebar为block名,例如:sidebar、sidebar__item、sidebar__link若项目已有多个侧边栏(如管理后台+用户中心),可用sidebar--admin或sidebar--user做modifier,而不是另起一套block名避免嵌套过深:不用sidebar__list__item__link,而用sidebar__item-link------BEM不鼓励层级映射,只反映功能关系如何用CSS控制侧边栏子菜单展开时的动画表现纯CSS实现折叠/展开动画,关键在于不能对height做auto过渡(浏览器不支持),得改用max-height或transform。常见错误现象:transition: height 0.3s写上去但完全没动画,因为从0到auto无法插值。立即学习"前端免费学习笔记(深入)";实操建议:用max-height替代height:初始设max-height: 0,展开时设一个足够大的值(如max-height: 300px),并加overflow: hidden更稳妥的做法是用transform: scaleY(0) → transform: scaleY(1),配合transform-origin: top,性能更好且无需预估高度别忘了给sidebar__submenu加will-change: transform,尤其在移动端避免闪屏为什么sidebar__item点击后active状态样式不生效大概率是CSS优先级被覆盖,或者JS没正确切换class。BEM本身不解决状态管理,只是约定命名,状态逻辑仍需手动控制。 VWO 一个A/B测试工具
相关推荐
. . . . .2 小时前
乐观锁 vs 悲观锁小灰灰搞电子2 小时前
Python 信号量详解:并发控制实战Leo.yuan2 小时前
2026年多数据库实时同步的四种架构方案及工具推荐新时代牛马2 小时前
cyclictest 毛刺从哪来?从ftrace、latencytop、perf到IRQ/调度延迟定位hasty3 小时前
Origin 校验不是身份认证:MySQL MCP Server 漏洞给 AI 平台的警告Dxy12393102163 小时前
Python如何结合AI解决数据分析问题IvanCodes3 小时前
Python 基础语法(七):推导式与常见遍历写法zhangzeyuaaa3 小时前
Python requests:raise_for_status() 与 4xx/5xx 异常层次详解泡海椒3 小时前
动态代理核心原理:JQuick-Java接口规则自动生成机制解析余槐i4 小时前
Firecrawl 实战:将网站转换为大模型可用数据