我应该即使只有单个HTML元素也使用类吗?

5
我正在设计一个网站,我的老板告诉我通常不使用id,更喜欢使用class,但他忘了为什么。因此,我进行了一些研究,发现了这个,但第一个答案并没有很好地解释为什么不应该使用id。如果我只使用一个元素,我认为应该使用id。如果我不会多次使用一个元素,为什么要使用class?

Id用于唯一的事情,但类可以多次使用。最好为样式添加类。 - Ashan
我会小心使用id进行样式设计,因为实际上,你正在为单个页面而不是所有页面设计样式。在这种情况下最好有一个<table id="accessorTable" class="dataTable"> 并设计dataTable的样式。否则,当我知道只有一个时,我没有使用id的问题。 - Neil
@BoltClock,你不应该在15个页面中使用相同id的元素。理想情况下,应该将它们放在一个页面中,然后在其他页面中引用。在15个不同的页面中使用相同的id似乎是一种不好的模式。这样只会增加冲突的可能性。 - Neil
@Neil:在这种情况下,我认为你和我对“页面”的定义有很大的不同。我不是在谈论部分或包含 - 我是在谈论整个文档(“页面”)。具有#logo id的元素可能仅出现在标题包含中,然后包含在15个页面中 - 每个页面都将有一个单独的#logo元素,只要作者知道公司标志的特定实例(在HTML / CSS方面)不会出现在除标题之外的任何地方,那就没问题了。 - BoltClock
@BoltClock,那我认为我们达成了一致。我的意思是,使用相同ID的单独页面组件可能会有问题。在同一页面中包含两个具有相同ID的页面组件将会很麻烦,因此在多个页面上使用相同ID的做法并不是一个好主意。 - Neil
显示剩余2条评论
4个回答

3
与性能问题有关。即使您只使用此元素一次,我仍建议使用class而不是id
为什么?因为您将来可能会向此元素添加更多的类。但为什么这很重要并与性能有关呢?看看这个:
引用:

普遍认为ID选择器是最快的,但这带来了一个很大的警告:只有当它们是关键选择器时,ID才是最快的CSS选择器。什么是关键选择器?嗯,虽然您可能从左到右阅读选择器,但浏览器却从右到左阅读。

有关更多详细信息,请查看此站点

2
我更喜欢使用类(class)。即使只有一个元素,也应该这样做。考虑一下如果您将来想要重用该单个元素的CSS,会发生什么情况 - 它将不再是单个元素,您必须将其更改为类(class)。
此外,与类(class)相比,ID还具有其他功能:您可以将#yourId添加到URL中,并在打开URL时使浏览器自动滚动到该元素。

1

如果你想使用id或class完全取决于你的需求。不能说我们不应该使用id。以下是一些关键点。

  • ID和class充当钩子,需要它们来选择元素。
  • 每个元素只能有一个id,并且每个页面只能有一个id。
  • 您可以在多个元素上使用相同的类。
  • 您可以在同一元素上使用多个类。默认情况下,将类名或ID添加到元素不会对该元素产生任何影响。
  • ID具有特殊的浏览器功能。这是URL中的“哈希值”。如果您有一个URL,例如http://yourdomain.com#comments,浏览器将尝试定位具有ID“comments”的元素,并自动滚动页面以显示该元素。
  • Javascript喜欢id,这就是为什么我们有document.getElementById();
  • Jquery喜欢类,很容易在元素上添加类。

阅读https://css-tricks.com/the-difference-between-id-and-class/以了解更多信息


0

class 用于对可以一起进行样式设置的元素进行分类。因此,如果您根据演示逻辑对元素进行分类,请使用类。

id 用于使用唯一标识符标识单个元素。因此,如果您需要在页面中唯一标识元素,请使用 Id。验证确保其遵循此概念,否则会引发错误。因此,根据规范和实现,我们无法可靠地使用 class 来唯一标识元素。这就解释了为什么我们需要使用 Id。

事实上,如果您不需要在演示中唯一标识元素,则可能根本不需要此功能。

至于性能,只有在关键时才考虑性能。除非性能已经影响到页面渲染,否则不要过度优化并失去可读性和语义。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接