使用方法
CSS校验三步:
- 把 CSS 粘进文本框,页面已预置一段含错误的示例。
- 点「检查」,下方表格逐条列出问题类型、所在行与提示。
- 点「复制报告」把结论带走,或点「载入示例」还原。
CSS校验能解决什么
它解决「CSS 明明写错了却不报错」的困扰:
- 括号对不上:少一个大括号会让后面所有样式失效,本页直接定位。
- 注释没闭合:
/*忘了写*/会吞掉后面一大段。 - 漏分号:两条声明之间少分号,浏览器会静默丢弃一条。
本页不做的事:不做完整的 CSS 语法解析,也不检查属性名拼写——它聚焦最容易出的结构性错误。
原理和变量
① 用了哪个具体函数:用计数器扫描全文——遇到 { 加 1、遇到 } 减 1;同时用状态机标记是否处在 /* */ 注释中;再逐行判断「有冒号但行尾无分号且不在块首尾」的情况。
② 关键参数为什么这样取:先判定注释状态再计数括号,是因为注释里的括号不应计入;只报「缺分号」的疑似行,是为了避免把单行声明误报。
③ 遵循哪个标准:检查规则依据 CSS 的基本词法——块用大括号、声明以分号分隔、注释成对出现。
④ 输入怎么变成输出:演示代码里「font-size: 16px」缺少分号,且大括号本身配对正常,因此报告只有一条「疑似缺分号」。
⑤ 边界与阈值:空输入提示;括号计数为负(多了右括号)会立即报出所在行;行数不限。
⑥ 常见误用的正确解释:这是检查器不是格式化器,不会自动修复;也不会报「属性拼写错」「语法过时」这类问题,别把它当完整 lint 用。
完整示例
演示输入为页面预置代码,检查结果为:
- 大括号:
{出现 2 次、}出现 2 次,配对正常。 - 注释:
/* 卡片样式 */成对闭合,正常。 - 疑似缺分号:第 8 行
font-size: 16px末尾无分号 → 报出。
把那一行补上分号再检查,问题列表即清空。演示仅作说明。
输入范围与对照表
问题类型与提示对照:
| 问题类型 | 触发条件 | 提示 |
|---|---|---|
| 括号未闭合 | { 多于 } | 缺少 N 个右大括号 |
| 多余右括号 | } 多于 { | 第 X 行出现多余 } |
| 注释未闭合 | 有 /* 无 */ | 注释未结束 |
| 疑似缺分号 | 行内有冒号但行尾无 ; } { | 第 X 行可能缺分号 |
| 空样式块 | {} 之间只有空白 | 第 X 行是空规则 |
结果边界和舍入
本工具不涉及数值计算。检查是「逐字符扫描」,因此字符串里出现的括号也会被计入(CSS 里字符串较少见)。报告的「行号」从 1 开始,与你编辑器里看到的一致。
常见问题
能自动修复错误吗?
不能,本页只报告问题位置,修复需要你手动完成。
能检查属性名拼写吗?
不能。本页聚焦大括号、注释、分号这类结构性问题,不做完整语法解析。
为什么字符串里的括号也算?
因为检查是逐字符扫描的简化实现;CSS 中字符串很少见,实际影响不大。
缺分号的提示准吗?
它是「疑似」提示,基于行内有冒号但行尾无分号的启发式,请结合代码判断。
会上传我的代码吗?
不会,检查完全在浏览器本地进行。
支持 SCSS 或 Less 吗?
不支持嵌套语法的完整检查,本页只按标准 CSS 的花括号规则统计。
能检查压缩后的 CSS 吗?
可以,压缩后整段常在一行,括号计数仍有效,但行号提示意义不大。
检查结果为空说明什么?
说明未发现结构性错误,但不代表样式一定能如你所愿地生效。