一点菜鸟所以需要一些现实世界的建议。
我刚刚阅读了一篇由mozilla撰写的关于使用css选择器的文章。
基本上,他们说不要使用复杂的选择器树,例如:
.class-a .class-b > .class-c is better expressed as custom-class-abc
显然他们会因为第二个选项对浏览器的性能更好,但如果这是最好的解决方案,那么它会使很多css基础变得多余。
我的UL包含含有A的LI。我的第一个A需要区别对待,所以我使用以下语法:
#footer li:first-child a {}
如果我要遵循Mozillas的最佳做法,那就是:
#footer a.first or #footer .first (after adding a class to the first A element)
有足够的东西可以学习,所以我们会欣赏一些关于这一切在现实世界中如何运作的建议。
答案 0 :(得分:2)
你的选择器很好。没看过你提到的文章,我猜他们的意思是避免像
这样的东西html body div.wrapper div.navigation ul.nav li:first-child a.item { }
只是做
.nav li:first-child a.item
这个article更多地说明为什么更少的选择器对性能更好。当然,一切都是极端的,mozilla应该推荐如何尽可能快地制作东西,但选择器已经非常快,所以在大多数情况下它没有任何区别。
在相关的说明中,阅读css中的特异性也可以帮助您确定实际需要选择的数量。 http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/
答案 1 :(得分:1)
我认为这篇文章可能已经过时,以迎合笨拙的浏览器,但大多数最新的浏览器都明白:现在的第一个孩子。你的例子
#footer li:first-child a {}
我是如何摇滚的。 ie8不明白:最后一个孩子注意。