侧边栏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测试工具
相关推荐
暴躁小师兄数据学院1 分钟前
【AI大数据工程师特训笔记】第10讲:数据库用户、权限管理、数据库约束l1t5 分钟前
DeepSeek总结的使用实体-组件-系统和基于存在性处理进行Python编程18-20零梦ing12 分钟前
Claude Code 升级后 DeepSeek API 报错 messages[x].role: unknown variant system 终极解决方案凤山老林12 分钟前
DDD(领域驱动设计)在复杂业务系统中的落地指南凯瑟琳.奥古斯特23 分钟前
子查询原理与实战案例解析Eiceblue25 分钟前
Python 操作 Excel:数据分组、分类汇总与取消分组全解KaMeidebaby41 分钟前
卡梅德生物技术快报|酵母双杂交 cDNA 文库构建与蛋白互作筛选流程暴躁小师兄数据学院1 小时前
【AI大数据工程师特训笔记】第02讲:PostgreSQL数据库生态全景沐风___1 小时前
App 上架之后:如何看数据、获取用户与持续迭代产品暴躁小师兄数据学院1 小时前
【AI大模型应用开发工程师特训笔记】第04讲(第9章):文件目录操作