在任何现代浏览器中(在IE 8之后),是否有理由再使用CSS类,而不是总是使用属性选择器?
我提出这个问题是因为我正在使用AngularJS代码,这是非常属性驱动的,而且我发现自己只根据属性而不是使用类来编写样式,但这不是常态,我想知道如果有原因的话。
两者之间是否存在隐藏的差异导致人们仍然使用类而不是属性?
语法:我认为<bar foo>
和<bar class="foo">
大致相同:两者都在标记中声明,两者都可以通过JS修改(添加/删除),两者都具有相同的名称结构体。同样,[foo]{}
和.foo{}
完全相同。
类和属性都具有相同的specificity,因此CSS会对它们进行相同的权重。
我无法找到以某种方式引用性能问题的消息来源。
那么为什么类仍然存在,当属性已经存在?是不是因为他们先在那里而且已经陷入困境?
答案 0 :(得分:5)
答案 1 :(得分:3)
您从特定的机器可读性角度来看这个,但不是从人类可读性角度来看。
让我们假设有人正在与项目开发人员和设计人员合作。为元素分配class
告诉人类读者这些元素属于某个特定组的代码,并且它们所属的组应该具有相对相同的样式。这使得引用,维护和更新CSS样式变得更加简单和快速。
[attributes]
几乎就像是class
的倒置。该元素不属于[attribute]
,因为它属于class
,[attribute]
属于该元素。
@Diodeus答案提供了非常具体的证据来说明基准,IMO是这里最重要的因素,但也不要忘记语义。