我应该在css中使用element.myclass还是.myclass?

我应该在css中使用element.myclass还是.myclass?,css,Css,我找不到解释我是否应该在CSS中使用例如element.myclass或.myclass来设置元素的样式 那么,我应该使用 或 ? 我知道这两者之间的区别,但我不知道我需要使用哪一个。如果选择器不含糊,请选择.myclass而不是p.myclass。参见hungerstar答案,如SonarQube所述: 应删除过度限定元素的名称 除非元素名导致类的行为不同,否则不需要编写诸如li.active之类的选择器。在大多数情况下,从选择器中删除元素名是安全的,减少CSS的大小和提高选择器性能都不需要再

我找不到解释我是否应该在CSS中使用例如element.myclass或.myclass来设置元素的样式

那么,我应该使用

?

我知道这两者之间的区别,但我不知道我需要使用哪一个。

如果选择器不含糊,请选择.myclass而不是p.myclass。参见hungerstar答案,如SonarQube所述:

应删除过度限定元素的名称 除非元素名导致类的行为不同,否则不需要编写诸如li.active之类的选择器。在大多数情况下,从选择器中删除元素名是安全的,减少CSS的大小和提高选择器性能都不需要再匹配元素

删除元素名也会松开CSS和HTML之间的耦合,允许您更改使用该类的元素,而无需更新CSS

如果选择器不含糊,则优先选择.myclass而不是p.myclass参见hungerstar答案,如SonarQube所述:

应删除过度限定元素的名称 除非元素名导致类的行为不同,否则不需要编写诸如li.active之类的选择器。在大多数情况下,从选择器中删除元素名是安全的,减少CSS的大小和提高选择器性能都不需要再匹配元素

删除元素名也会松开CSS和HTML之间的耦合,允许您更改使用该类的元素,而无需更新CSS


根据Ockham剃须刀的说法,总是使用最简单的方法:如果.intro足够满足您的需要,那么将其作为第一选择。之后,如果您需要区分不同情况下的规则,请放大选择器以使其更具体。浏览器将选择最具体的选择器以防冲突。

根据奥卡姆剃须刀,始终使用最简单的方法:如果.intro满足您的需要,请将其作为第一选择。之后,如果您需要区分多个案例之间的规则,请放大选择器以使其更具体。浏览器将选择最具体的选择器以防冲突。

我认为这是一个特殊性问题。因此,我会在p | span | div.intro之前加入.intro。特异性较高的选择器获胜

.intro的特异性为0.1

p、 intro的特异性为0.01,高于.intro

比如说,简介是:

因此,任何带有.intro的元素都将具有绿色文本。但您希望所有段落都有橙色文本。您可以创建一个新类,如.p-intro,也可以执行以下操作:

p.intro {
    color: orange;
}
与.p-intro相比,这确实略微增加了特定性,但一个很大的好处是,您不必通过所有标记来向所有段落添加/删除.p-intro。通过在CSS中添加p to.intro,您一下子就更新了整个站点

我总是尝试使用特定性最低的CSS选择器来完成工作。这样,以后当不可避免的变化发生时,更新/扩展现有样式就更容易了


注:其他好处见其他答案。

我认为这是一个特殊性问题。因此,我会在p | span | div.intro之前加入.intro。特异性较高的选择器获胜

.intro的特异性为0.1

p、 intro的特异性为0.01,高于.intro

比如说,简介是:

因此,任何带有.intro的元素都将具有绿色文本。但您希望所有段落都有橙色文本。您可以创建一个新类,如.p-intro,也可以执行以下操作:

p.intro {
    color: orange;
}
与.p-intro相比,这确实略微增加了特定性,但一个很大的好处是,您不必通过所有标记来向所有段落添加/删除.p-intro。通过在CSS中添加p to.intro,您一下子就更新了整个站点

我总是尝试使用特定性最低的CSS选择器来完成工作。这样,以后当不可避免的变化发生时,更新/扩展现有样式就更容易了


注意:有关其他好处,请参见其他答案。

取决于您的布局和需要。从语法上来说,他们都很好,尽管=是错误的-应该是:为什么这个观点是基于?有两种方法可以做同样的事情。我试图理解什么时候使用element.intro或.intro,为什么会被否决?你们这些人怎么了?你在学习的时候没有基本的问题吗?这个问题没有错。天哪,你需要用你需要用的那个。。。。这里没有错误的方法,这都是关于特定性的。记住css是从右到左处理的,所以选择器越长,效率就越低。如果您不需要那种程度的特异性,那么使用最简单的选择器。阅读以下内容:取决于您的布局和需求。在句法上他们
“我们都很好,尽管=是错误的-应该是:为什么这个观点是基于?有两种方法可以做同样的事情。我试图理解什么时候使用element.intro或.intro,为什么会被否决?你们这些人怎么了?你在学习的时候没有基本的问题吗?这个问题没有错。天哪,你需要用你需要用的那个。。。。这里没有错误的方法,这都是关于特定性的。记住css是从右到左处理的,所以选择器越长,效率就越低。如果您不需要那种程度的特异性,那么使用最简单的选择器。读一读:非常感谢你的精彩解释!Xenos和您都应该得到绿色复选标记:S:非常感谢您的解释!Xenos和您都应该得到绿色复选标记:S:非常感谢您的解释!hungerstar和你都应该得到绿色的复选标记:S:非常感谢你的解释!hungerstar和你都应该得到绿色复选标记:S:
.intro {
    color: green;
}
p.intro {
    color: orange;
}