“糟糕的代码”、教条主义等

Avatar of Chris Coyier
Chris Coyier

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

  1. 一篇问答文章 中,我在Smashing Magazine上回答了一个关于如何查看CSS并确定其好坏的问题。
  2. Harry Roberts 详细阐述了我的答案,并提供了更多关于CSS中不良内容的具体示例(例如,幻数、限定类、过于模糊的选择器)。Harry 在这篇文章中说

    在 HTML 中使用 ID 用于片段标识符和 JS 钩子,但不要在 CSS 中使用。

  3. Jeffrey Zeldman 对此做出回应,并 为使用 ID 进行辩护。Jeffrey 将放弃 ID 与 OOCSS 和避免使用后代选择器进行了比较。
  4. 我们在 ShopTalk 上邀请了 Jeffrey 进行讨论。我们没有花太多时间争论,而是专注于一个更大的共识:对这些事情过于教条主义是最糟糕的态度。
  5. 完全巧合的是,下周我们将在 ShopTalk 上邀请 Harry Roberts。

现在轮到我再次发言了。我喜欢写博客。

我觉得如果有人被 Harry 的写作风格所排斥,无论是这篇还是其他文章,那可能是因为他有时给人一种教条主义的感觉。如果你不理解这个词的意思,就将其理解为不灵活的思维方式。事情就是这样,就是这样。拥有强烈的观点很棒,拥有不灵活的观点则不然。写下对你有效的方法很棒,写铁板一块的宣言则不然。

我见过 Harry。他是个好人。我不确定他在思维上有多教条主义(我认为不太多)。我们将在 ShopTalk 上讨论这个问题。

Jeffrey 称“永远不要使用 ID”的规定为“胡说八道”。

跟我一起说:当 ID 被适当地使用(语义化、结构化、谨慎)时,它并没有错。认为类总是优于后代选择器和语义化、结构化 ID 的观念则大错特错。

在我看来,这与 Harry 的教条主义一样接近。而我也有罪。我在我的文章 “沙中线,关于肉辣椒和使用类的故事” 中写到了这一点。

我不会使用 ID 来设置样式。不妥协。即使 ID 似乎可以在短期内帮助我,但永远不使用它们的长期益处更大。

完全避免使用 ID 让我获得了更好的 CSS 编写体验。我可能应该更侧重于这一点,但,好吧。

我觉得 Jeffrey 认为避免使用 ID 意味着过度使用类来修饰其他所有内容,放弃级联,以及不使用鼓励编写干净标记的智能选择器。我认为 ID 与这些事情无关。过度使用类很愚蠢,不要这样做,也不要认为这就是 OOCSS 的含义(我认为它更像是:找到一个模式,给该模式一个类)。级联仍然有用,但范围有限。你可以争辩说它带来的伤害和好处一样多。最后,我非常喜欢后代选择器。它们与类和 ID 的效果一样好。我认为更好,因为类是可以重复使用的。

我还觉得 Jeffrey 对此有比 Harry 或我更深刻的理解。正如我们在 ShopTalk 节目中讨论的那样,Jeffrey 经历了一些标记极其糟糕的时代,并帮助开启了一个我们今天习惯看到的干净标记时代。如果他觉得事情朝着另一个方向发展,我会理解他的担忧。