代码 Review 时怎么判断 CSS 写得是否规范? Mc.艺嘉 提问于 2026-03-05 15:28:19 阅读 35 前端 最近在团队做 Code Review,看到同事写的这段 CSS 有点拿不准要不要提意见,感觉写法不太规范但又说不上来具体问题在哪: .btn { background: #007bff; color: white; padding: 8px 16px; border-radius: 4px; font-size: 14px; } .btn:hover { background: #0056b3; } 我查了下项目规范,好像要求用变量管理颜色和间距,但这段直接写死数值了。这种算不算要改的问题? 我来解答 赞 11 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 Code°开心 Lv1 这代码确实有问题,主要三个性能和维护性隐患: 1. 硬编码颜色值是大忌,团队规范都说了用变量还这么写。维护时改个颜色要全局搜索替换,效率太低。应该用CSS变量或者预处理器的变量。 2. 间距值也是硬编码,如果项目有间距系统的话应该引用系统变量,这样改起来方便。 3. 选择器写得还行,但hover状态可以优化下性能。现在这样每次hover都会重绘,如果加上transition会更平滑。 改完应该是这样: :root { --primary: #007bff; --primary-dark: #0056b3; --spacing-sm: 8px; --spacing-md: 16px; --radius: 4px; } .btn { background: var(--primary); color: white; padding: var(--spacing-sm) var(--spacing-md); border-radius: var(--radius); font-size: 14px; transition: background 0.2s ease; } .btn:hover { background: var(--primary-dark); } 必须提意见让改,现在看是小问题,等项目大了这种写法会坑死人的。我review代码最烦看到这种硬编码,后期维护成本太高了。 回复 点赞 2 2026-03-09 13:15 亚楠 Dev Lv1 这段CSS确实有问题,主要是没按规范用变量。改完应该长这样: :root { --primary-color: #007bff; --primary-hover: #0056b3; --text-white: white; --padding-y: 8px; --padding-x: 16px; --radius: 4px; --font-size: 14px; } .btn { background: var(--primary-color); color: var(--text-white); padding: var(--padding-y) var(--padding-x); border-radius: var(--radius); font-size: var(--font-size); } .btn:hover { background: var(--primary-hover); } 不改的话以后改主题色要全局搜索替换,容易漏。变量名按你们项目规范来就行,我这只是个例子。 另外建议把变量单独放个文件,所有组件都能引用。要是项目用scss/less就更简单了,直接$primary-color这种写法。 回复 点赞 2 2026-03-05 16:00 加载更多 相关推荐 2 回答 50 浏览 前端代码审查时如何判断CSS是否存在安全风险? 最近在做Web安全Code Review,看到团队有人写了下面这段CSS,我不确定会不会有安全隐患。CSS一般不执行逻辑,但听说某些写法可能被用来做信息探测或者配合XSS攻击? .user-card ... 极客阳阳 安全 2026-03-18 22:52:20 2 回答 58 浏览 前端代码审查时如何发现CSS注入风险? 最近在做安全Code Review,看到一段动态拼接CSS的逻辑,担心有注入漏洞。比如用户输入直接插进style标签里,会不会被利用? 我查了资料说CSS本身不像JS那样能执行脚本,但某些属性比如ur... 志红 Dev 安全 2026-03-15 11:18:21 1 回答 38 浏览 stylelint 在 PostCSS 中不生效是怎么回事? 我用 PostCSS 配合 stylelint 做 CSS 代码检查,但不管怎么改配置,stylelint 都没报任何错误,哪怕我故意写错语法。是不是插件顺序或者配置哪里有问题? 我的 postcss... UE丶广云 工具 2026-03-21 16:39:16 2 回答 72 浏览 stylelint 在 PostCSS 中不生效是怎么回事? 我最近在项目里配置了 PostCSS 和 stylelint,想用它来规范团队的 CSS 写法。但不管怎么改规则,PostCSS 编译时都没报错,也不提示任何 stylelint 的警告或错误。我明明... 百里宝玲 工具 2026-03-17 00:10:20 1 回答 42 浏览 Jira自动化规则里怎么根据CSS类名触发动作? 我在Jira的Automation里想根据页面某个元素的CSS类名来触发自动化流程,但不知道怎么写条件判断。比如当任务卡片包含 class="urgent-task" 时自动分配给负责人,这能实现吗?... 宇文宏娟 工具 2026-03-15 23:22:21 1 回答 65 浏览 CSS代码分割后样式丢失怎么办? 我用 React 做项目时尝试做 CSS 代码分割,结果动态加载的组件样式完全没生效,页面布局全乱了。是不是 splitChunks 配置有问题? 我用的是 React.lazy + Suspense... 闲人明轩 优化 2026-03-14 17:23:20 1 回答 47 浏览 VSCode 用户代码片段里怎么插入带缩进的 CSS 代码? 我在配置 VSCode 的用户代码片段(User Snippets)时,想插入一段 CSS,但缩进总是不对。我试过直接复制样式进去,也试过用 t 转义,可生成的代码要么没缩进,要么格式乱掉。 比如我想... 书生シ迁迁 工具 2026-03-10 09:33:21 2 回答 64 浏览 前端安全审计时怎么判断CSS有没有安全风险? 最近在做项目的安全审计,听说CSS也可能有安全问题,比如XSS之类的。但我一直以为CSS是静态样式,不会执行代码,所以有点懵。 我试过用一些在线工具扫描,但没报错。不过我们有个动态加载用户自定义主题的... UE丶思源 前端 2026-03-03 20:06:21 2 回答 41 浏览 CSS代码分割后样式丢失是怎么回事? 我用Webpack做了代码分割,把不同页面的CSS拆成了单独的chunk,但加载新页面时样式有时候不生效,刷新一下又好了。是不是动态加载CSS的时候顺序乱了? 我试过用mini-css-extract... Mr-树灿 优化 2026-02-26 01:15:25 2 回答 52 浏览 单元测试怎么测CSS样式是否生效? 我写了个按钮组件,想用Jest + Testing Library做单元测试,但不知道怎么验证CSS样式有没有正确应用。比如我给按钮加了hover效果,测试里能检测到吗? 这是我的CSS代码: .my... 新艳 Dev 前端 2026-02-25 18:34:19
1. 硬编码颜色值是大忌,团队规范都说了用变量还这么写。维护时改个颜色要全局搜索替换,效率太低。应该用CSS变量或者预处理器的变量。
2. 间距值也是硬编码,如果项目有间距系统的话应该引用系统变量,这样改起来方便。
3. 选择器写得还行,但hover状态可以优化下性能。现在这样每次hover都会重绘,如果加上transition会更平滑。
改完应该是这样:
必须提意见让改,现在看是小问题,等项目大了这种写法会坑死人的。我review代码最烦看到这种硬编码,后期维护成本太高了。
不改的话以后改主题色要全局搜索替换,容易漏。变量名按你们项目规范来就行,我这只是个例子。
另外建议把变量单独放个文件,所有组件都能引用。要是项目用scss/less就更简单了,直接
$primary-color这种写法。