最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
HTML基础如何使用类名规范管理HTML元素的样式分类
时间:2026-08-25 12:21:47 编辑:袖梨 来源:一聚教程网
类名是写在HTML元素上的标识符,用于CSS选择、JS操作和团队协作;应语义化命名(如“article-title”)、采用kebab-case格式、避免外观描述,工具类需加u-前缀,BEM结构适用于复杂模块。
类名不是“设置”出来的,而是写在 HTML 元素上的标识符,它的作用是让 CSS 能选中、JS 能操作、团队能理解——真正起效的是后续的样式定义和逻辑绑定,不是 class 本身。
语义优先:用“它是什么”代替“它长什么样”
class 名应描述内容或功能,而非外观。比如写 class="article-title" 比 class="big-blue" 更可靠:前者在换主题、改字体时依然准确表达意图;后者一旦蓝色取消,类名就失去意义。
- ✅ 推荐:
user-avatar、search-submit、error-message - ❌ 避免:
float-left、red-text、margin-20(除非是统一约定的工具类,如u-text-center) - 工具类可存在,但需加前缀(如
u-或util-),且仅用于无语义的通用行为
命名格式:统一用 kebab-case,禁用下划线和驼峰
HTML 和 CSS 对大小写不敏感,但连字符(-)是唯一被广泛支持、无需转义、阅读清晰的单词分隔方式。
- ✅ 正确:
nav-item、product-card、main-content - ❌ 错误:
nav_item(CSS 中需转义才能选中)、navItem(不符合 CSS 选择器习惯)、1st-section(数字开头不推荐) - 所有字母小写,不包含空格、中文、特殊符号(如点、冒号)
BEM 结构:明确组件层级与状态
对复用性强或嵌套深的模块(如卡片、菜单),BEM 能避免歧义和样式泄漏:block__element--modifier 的三段式结构一目了然。
-
card是独立模块(Block) -
card__title是其子元素(Element),不会和另一个模块的title冲突 -
card--expanded或card__button--disabled表示状态(Modifier) - 避免过度嵌套,如
card__header__title__link—— DOM 层级靠结构体现,不靠 class 名堆叠
多类并用与常见陷阱
一个元素可以同时拥有多个 class,用空格分隔,这是合法且常用的做法,但操作时要注意细节。
- 正确写法:
<div class="card card--hover is-active"></div> - JS 中增删类要用
classList方法:el.classList.add("active"),而不是拼字符串 -
toggle("a b")无效,必须分开调用:el.classList.toggle("a"); el.classList.toggle("b") - IE9 不支持
classList,需降级为操作className字符串,并手动处理空格去重
相关文章
- VPS 网络质量如何测?一篇讲清楚多节点 ping、tcping 和回程路由 09-01
- 酷开系统5.5真实体验 09-01
- 自我总结ai与个人成长实践思考_知识传播的重要性(3篇) 09-01
- 康复治疗师乡镇单位性质 09-01
- 掌握数据准确性的关键,轻松在Excel中去重 09-01
- 编写xml没有代码提示的解决做法实用指南 09-01