CSS分组(多元素)选择器使用小记

从来都不要认为一件事情简单就不去仔细研究,CSS本身是比较简的但要想完全凌驾其上也不是一朝一夕的事,平常做页面时就要多做总结,积累才是学习的最好方法。

正题:

在我们写CSS时遇到两个选择器不同规则相同的情况大多会用到多元素选择器,因为这样在某种情况下会少写一条相同的规则,比如:

#display-block{ display:block; }
.display-block{ display:block; }

合并为:

#display-block, .display-block{ display:block; }

这个地球人都知道?往下看…
毫无疑问上面这种方法大大的精简了代码,但是在实际操作中我发现并非所有的情况都如我所愿。比如:

#display-block{ display:block; color:red; }
.display-block{ display:block; color:black; }

合并为:

#display-block{ color:red; }
.display-block{ color:black; }
#display-block, .display-block{ display:block; }

对比一下这两段代码,你会发现下面合并过的比上面没合并的多了大约18个字符,换句话说就是合并并没有达到精简代码的效果,反而比原来的还长了。

总结一当某选择器有单一CSS规则时,用分组选择器会达到精简代码的作用。

再来看一种情况:

#f1{ display:block; color:red; }
#f2{ display:block; color:black; }

合并为:

#f1{ color:red; }
#f2{ clor:black; }
#f1,#f2{ display:block; }

对比一下合并后大概节省了7个字符。

总结二当N个(短)选择器下含有至少1条相同CSS规则,用分组选择器优化其中某条规则时可能会达到效果。

能否达到效果要看其中的“短”和“某条”的字符长度。用个小学生方程吧:设它俩字符长度为X,Y 那么:

当 Y*N>X*N+(N-1)+2+Y 时,总结二成立。否则不成立。

解释:

  • N-1表示分组选择器之间的“,”
  • 2表示多出来的“{}”

好了!一个简单的结论出来了哈。不过貌似没多大意义,也只做折腾罢了。匆深究^!^

附:CSS森林博客作者制作的CSS压缩工具:mergeCSS

分享一段可定制的分享代码

最近在给公司做网站的时候需要给产品页加上分享到微博的代码,本来用addthis的代码,但可定制性太差。于是就自己上网搜索了下总结出一个感觉还不错的代码。效果类似于文章下面的“收藏&分享”。

如果觉得不够的话自己去搜索链接代码,图标用的是eicodesign发布的免费图标哦。

继续阅读 »