css - 使用 css 语法或自定义类

标签 css css-selectors

有点菜鸟,所以需要一些现实世界的建议。

我刚刚阅读了一篇由 mozilla 撰写的关于 css 选择器的使用的文章。

基本上,他们说不要使用复杂的选择器树,例如:

.class-a .class-b > .class-c is better expressed as  custom-class-abc

显然他们会这样做,因为第二个选项对于浏览器的性能会更好,但如果这是最好的解决方案,那么它就会使很多 css 基础知识变得多余。

我有一个包含 LI 的 UL,其中包含 A。我的第一个 A 需要区别对待,所以我使用以下语法:

#footer li:first-child a {}

如果我要遵循 Mozilla 的最佳实践,这将是:

#footer a.first or #footer .first (after adding a class to the first A element)

有足够的东西可以学习,所以希望能就这一切如何在现实世界中运作提供一些建议。

最佳答案

您的选择器很好。没有读过你提到的文章,我猜他们的意思是避免类似的事情

html body div.wrapper div.navigation ul.nav li:first-child a.item { }

然后就去做

.nav li:first-child a.item

article详细说明了为什么选择器越少性能越好。当然,凡事都有极端,mozilla 应该建议如何使事情尽可能快,但选择器已经非常快,所以在大多数情况下它没有区别。

在相关说明中,阅读有关 specificity in css 的文章也可以帮助您确定实际需要选择多少。 http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/

关于css - 使用 css 语法或自定义类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14380991/

相关文章:

css - 旋转文本并将其容器缩小到新的宽度

基于包含值数组的 data-* 属性进行选择的 CSS?

css - 使用第 nth-child 表行的重复范围

html - (HTML + CCS3 为分页媒体生成的内容)到 PDF?

html - 为什么宽度/高度不适用于非定位伪元素?

jquery - 如何更改 JtaCarousel Jquery 中的幻灯片时间(自动播放)?

css - 根据条件为 Angular 选择器的外部 div 添加样式

html - 第 n 个 child 没有按预期工作

css - 无类 div 的插入搞乱了 css .class :nth-of-type(n):before indexing

html - 页面加载时瞬间出现垂直滚动条