我应该在CSS中使用div.class还是.class?

3

最近我越来越经常看到这种变化,人们在写CSS时会使用div.class或者div#id而不是只使用.class或者#id

哪种方式是最好的用于在CSS中定位你的类?为什么?

如果我没记错的话,div.class.class得到的结果是相同的吗?


2
.class 下的规则也可用于 span 标签,而 div.class 只在 div 标签具有该类时应用。这里 是一个示例。至于哪种更好取决于你如何重复使用类。如果相同规则适用于多个标签类型,请不要指定标签名称。 - Harry
如果你的所有.class都是<div>,那么div.class.class的作用是相同的。 - Scimonster
看一下这个主题:http://www.w3.org/TR/selectors/#specificity 和这里:https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity 理解它将为您节省很多时间:) - scx
4个回答

10

div.class 只会影响 div 元素,而且比仅使用 .class 更为具体。因此,如果在一个 div 中同时编写 div.class.class,第一个将优先生效。

但是我认为如果你没有很好的理由(你可能只想将某些内容应用于具有该类别的 div 元素而不是其他元素),最好不要使用它,这样会更加优雅。


啊,是的,当然!谢谢你澄清。为什么我自己没有想到呢。 - Rvervuurt

4
最佳方式取决于您想要实现什么目标。您是想确保块样式不会意外地应用于内联元素吗?还是您有复杂的CSS并且性能成为问题了?
如果您使用div.class,则样式仅适用于具有该类的div。span.class不会受到影响。这意味着您也可以定义span.class以针对span执行特殊操作,或者将常见样式移动到通用的.class定义中。
如果您关心性能,以下是一些链接供您参考:

(谷歌搜索css性能


2

.class 将会影响所有我们给予 class 名称的元素。如果您使用 div.class,那么样式只会应用于具有该 class 的 div 元素。其他元素不会受到影响。下面的 fiddle 更详细地解释了这一点。

http://jsfiddle.net/wtcyvju2/


0

.class 可用于 div classspan,而且当标签具有该特定类时,也可以使用 div.class


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