我知道在CSS类中,通常会对可能在页面上多次使用的元素进行重新分类,而ID则用于一次性元素。话虽这么说,我已经注意到很多人似乎调用容器/包装元素类而不是ID,尽管它们只在页面上使用过一次。为什么是这样?我错过了什么?
例如:如果你检查这个页面的元素,你会发现<body>
标签被列为一个类,脚跟包<div>
也是如此。大多数其他元素都列为ID。
提前致谢。
答案 0 :(得分:1)
大多数情况下,在页面中出现一次的元素中使用类意味着我可以在不同的页面中使用相同的标记和不同的sytles。
例如,我可以将一个类分配给主页面中的body
标记,将另一个类分配给辅助页面。 body
的内容和结构可以相同,但风格不同。
答案 1 :(得分:0)
ID用于标记唯一元素 - 即用于使用Javascript定位特定元素。 CLASS用于分类事物。区别与JS有关,而不是CSS。
您看到网站之间存在差异的主要原因是作者滥用这些属性,或者因为其中一个或另一个在其代码和标记的上下文中更有意义。
<img id="name_of_my_image" class="category_of_image">
答案 2 :(得分:0)
我能想到的唯一原因是,如果这些类是全局类(并非特定于任何单个页面),并且可能性被多次使用。< / p>
例如,某人可能会实现名为.side-bar
的类。在一个页面上,他们可能只有side-bar
的单个实例,但在他们网站的另一个页面上,他们可能有两个。
否则,我认为开发人员并没有真正考虑他们如何将页面放在一起,只是将所有内容都放在了类中。
答案 3 :(得分:0)
没有要求,如果一个属性在一个页面上只使用一次,那么它必须是一个id而不是一个类。但是,就CSS和JavaScript性能而言,如果您知道标签只会使用一次,那么使用id会好得多。
一个可接受的用例是,如果站点有一个CSS文件,为了缓存的原因在每个页面上调用,以及应该表现相似的多种类型的页面。例如,可以在body
中为具有相似样式的多个页面指定类,以便您可以为各种效果堆叠这些类。
一个简单的例子:
<body class="article print-only mobile">
与
<body class="home print-only desktop">
与
<body class="home mobile logged-in">
在这些情况下,您可能希望组合使用不同的属性以获得所需的效果。
答案 4 :(得分:0)
有一种,IMO愚蠢的想法,通过像CSS lint这样的工具推广,ID是邪恶的。我认为这种观点的基础是人们对敌人的特殊性混淆,而像我这样的人则认为选择器计数是可维护CSS的敌人。我认为,喜欢像我这样的更多分层方法的人与更多的模块/组件特定的方法之间也存在差异。
十年来,我从未感受到使用!important
的冲动或需要。我目前正在与一个非常棒的团队合作,但是谁跟着这个班级的事情。他们发现偶尔使用!important必要且可接受。
我通常在视线上压制!important
声明,因此很少需要实际修复任何内容。在仅限类的代码库中,我不太习惯。这是个问题。谨慎使用ID来定义独特的事物,包括在唯一的部分上下文中对主题的变化进行覆盖,但是我的立场是肯定的,你应该使用它们。关键是永远不要添加超过必要的特异性。这就是人们开始制造混乱的地方,随之而来的是CSS选择器武器竞赛,每个人都希望确保没有人意外地打破他们的东西。这在一般开发中是一个糟糕的计划,但在CSS中特别糟糕,你想要闻到任何时候看起来有必要使用超过2-3个选择器,不计算像&gt;这样的东西。和+。