必须装intellisense for css class names in html插件,并手动开启editor.suggest.showclasses、editor.quicksuggestions.strings及css.stylesheets三项设置,否则class=""内无提示;插件仅索引显式配置路径下的静态css类,不解析js动态类、不识别plain text模式文件,且bem类需按card__或card--前缀精确匹配。

必须装 IntelliSense for CSS class names in HTML 插件,并手动开启三项设置,否则 class="" 里永远没提示。
为什么装了插件还是不提示?
插件不会自动扫描所有 CSS 文件——它只读 css.styleSheets 显式列出的路径;也不会在 Plain Text 模式下工作;更不会解析 JS 动态拼接的类(如 clsx("card", isHovered && "card--hovered"))。
- HTML 文件后缀不是
.html(比如是.htm或无后缀),VS Code 识别为 Plain Text,直接跳过 HTML 语言服务 - CSS 文件没被
<link>引入,且未写进css.styleSheets路径,插件根本读不到类名 - 项目用了 monorepo 结构,但
css.styleSheets写的是相对路径,跨包时失效(需加符号链接或用绝对路径)
关键设置缺一不可
这三项必须同时满足,少一个都白装:
-
editor.suggest.showClasses→ 设为true(让类名出现在补全候选列表) -
editor.quickSuggestions.strings→ 设为true(让双引号内自动触发建议,不是按 Ctrl+Space 才有) -
css.styleSheets→ 在settings.json中显式声明路径,例如:"css.styleSheets": ["src/**/*.scss", "styles/**/*.css"]
注意:editor.quickSuggestions 是个对象,不能直接设布尔值;strings 是它的子字段,单独控制 HTML 字符串上下文。
BEM 类名怎么才能被提示到?
插件不拆解前缀匹配,也不解析 SCSS 的 &__header 语法——它只索引最终生成的 CSS 字符串。
- 输入
card→ 不会列出card__header、card--active - 输入
card__→ 列出所有card__*element 类 - 输入
card--→ 列出所有card--*modifier 类 - SCSS 文件必须编译过或被插件直接支持(它支持
@import和@use),但不处理&语法推导
最容易被忽略的是路径配置和文件后缀识别——哪怕插件和设置全对,只要 HTML 文件被当成 Plain Text,或者 css.styleSheets 漏掉一个 .module.scss,补全就静默失效。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











