评判 CSS / 发现糟糕代码

Avatar of Chris Coyier
Chris Coyier 发布

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

在 Smashing Magazine 最近的一篇 问答文章 中,有人问到如何判断开发者是否写出了糟糕的 CSS。具体来说

哪些迹象表明 CSS 并非最佳,或者开发者没有做好?在 CSS 中,你观察什么来判断它的好坏?

我认为这是一个有趣的问题,我想对我的答案进行一些扩展。


为什么?

也许你雇了人来为你编写 CSS,并且想评估他们的工作质量。也许你正在查看某个你可能要雇佣的人的 CSS 代码。也许你想以某种方式评估你自己的 CSS。

显而易见的测试

查看网站。如果看起来乱七八糟,那么他们的工作就做得不好。

更进一步,根据你同意支持的浏览器进行检查。设计应该在所有浏览器中都能正常工作。

如果设计应该具有响应式,请调整浏览器窗口大小,以确保设计无论宽度或高度如何都能正常工作。

如果一切看起来都很好,那是一个好的(也是必需的)第一步。但这并不能绝对证明 CSS 很好。

格式化测试

浏览编写的 CSS 文件。请记住,最佳实践是提供已压缩的 CSS 文件(所有不重要的空格都已删除),因此不要查看该文件。

该文件并非旨在供人类阅读。查看他们实际创建的文件。

如果你有一个已建立的样式指南,并且期望遵循它,那么它是否被遵循了?

如果没有,它看起来是否一致——就像他们有自己的样式指南并坚持遵循一样?还是有点随意?随意是指有时选择器后面有一个空格,有时没有。一些代码块缩进了,而另一些则没有。单行 CSS 与多行 CSS 混杂在一起,毫无章法。

整洁的代码是尊重开发者的标志。一个尊重手艺和他们所做工作的人。

摘自 Nicolas Gallagher 的 惯用 CSS

如果这两个测试都通过了,那很好。但仍然不能完全证明 CSS 很好。

选择器测试

前两个测试几乎任何人都可以完成,但从这里开始,你需要自己熟悉 CSS。开始阅读 CSS,看看你看到的内容是否有意义。

选择器看起来是否合理?如果你看到一个像这样的选择器

.article #comments ul > li > a.button {
  /* Crazy town */
}

我会担心。那是一个开发者在与自身特异性问题作斗争,好的 CSS 不会这样做。

类名怎么样?易于理解吗?希望你不会发现任何像“bigGray”或“left50”这样的东西,因为它们的准确性肯定会短暂,导致未来的开发变得混乱。

重复程度如何?例如,如果你看到完全相同的 box-shadow 在 20 个不同的地方应用,这可能表明缺乏重构。优秀的 CSS 开发者会感知到这样的模式,并更好地适应它们。

大小测试

已部署的 CSS 文件大小如何?对于 CSS 文件来说,100k 绝对是巨大的。小巧是好的。即使(尤其是在)复杂的网站上。巨大的文件通常是缺乏一致性的标志。

编辑测试

想出一个你想要更改网站上样式的方案,并尝试自己进行更改。例如,将所有使用的字体替换为其他字体。你能够快速熟悉代码吗?感觉是否有关于字体处理的计划?你能够多快完成?比你通常处理这类事情的速度快还是慢?

你是如何做到的?

你是否曾经处于需要评判他人 CSS 的位置?你是否使用了类似的测试?你是否有更明确的指标?