如何处理不再语义化的 ID 或类名

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 提供适合您旅程各个阶段的云产品。立即开始使用 $200 免费信用额度!

Errol 写道

您对以下情况有何看法:您开始
命名类,然后在中途意识到
您需要相同的类,但命名不语义。

您是创建一个重复的类,还是将现有类重命名
为更通用的名称,或其他方法?

例如

我将有一个 #modules_list_footer,但现在我需要相同的
内容用于文章,因此我可以只使用 modules,但它
应该为“#articles_list_footer”。

我们都遇到过这种情况。

当您第一次编写网站代码时,它具有美丽的语义性。一切都被完美地命名,对所有人都有意义。然后网站发展壮大,增加了新的区域,需要新的布局,样式表开始膨胀。您的“#articles_list_footer” 非常合理,但现在您需要将相同的页脚用于一个并非文章的新区域。使用该 ID 会非常方便,因为它可以正常工作。但这会让您走上一条语义性下降的道路…… 可怜的程序员该怎么办呢? 我认为有以下几种选择,按从最好到最差的顺序排列。

 

1. 重命名!

我在这里表明,您的首选方法应该是重命名有问题的 ID 或类名。这可能很麻烦。这可能涉及更新许多页面,而且很繁琐,但……这是正确的方法。

 

2. 创建一个新名称

可能会出现重命名完全不可行的情况。数千个页面……可能丢失的页面,并导致布局问题……在这种情况下,我建议您除了原来的过时名称外,再添加一个新名称。在 Errol 的情况下,只需添加一个更有意义的通用 ID 名称即可

#modules_list_footer, #list_footer { 
   ... 
   /* Note: #modules_list_footer is deprecated, use #list_footer */
}

由于它们将共享完全相同的属性,因此您可以使用新名称。然后在您的 CSS 中记下旧名称已弃用,供未来的开发人员参考。

 

3. 使用旧名称

如果您需要的不止是一个新名称,而是很多新名称,那么 #2 可能导致的 CSS 膨胀可能过于严重。您不会因为放弃并使用旧名称而扼杀任何小猫。至少您吸取了教训,并了解了下次可以做得更好的地方,这已经超过了 80% 的其他 Web 开发人员。也许在您的 CSS 中记下命名问题,您在编写下一个网站时,可以从 #list_footer 开始!

 

当然,这些只是我的想法。我相信你们中许多人有自己的处理此问题的方法。还有其他人有处理此问题的方法吗?