The currency symbol for the Euro is “€”.
2.9 使用带有语义的id和class
CSS Code复制内容到剪贴板
/* Not recommended: meaningless */
#yee-1901 {}
/* Not recommended: presentational */
.button-green {}
.clear {}
/* Recommended: specific */
#gallery {}
#login {}
.video {}
/* Recommended: generic */
.aux {}
.alt {}
2.10 省略零值的单位
CSS Code复制内容到剪贴板
margin: 0;
padding: 0;
2.11 省略起始的零
CSS Code复制内容到剪贴板
font-size: .8em;
2.12 尽量避免CSS hacks
尝试换种解决方案
2.13 为末尾的声明添加分号
尽管省略末尾分号可以省略一个字节,但是非常不利于团队维护,得不偿失
CSS Code复制内容到剪贴板
/* Not recommended */
.test {
display: block;
height: 100px
}
/* Recommended */
.test {
display: block;
height: 100px;
}
2.14 选择器的效率
浏览器是“从右往左”来分析 class 的,对于下面的规则
CSS Code复制内容到剪贴板
#god > li {font-weight: bold}
浏览器会先查找页面上所有的“li”节点,然后再去做进一步的判断:如果它的父节点的 id 为“god”,则匹配成功。由此可知,CSS 选择器的匹配远比我们想象的要慢的多,CSS 的性能问题不容忽视。
2.15 后代选择器
CSS Code复制内容到剪贴板
#toc li {font-weight: bold}
这个效率比之前的“child selector”效率更慢,而且要慢很多。浏览器先便利所有的“li”节点,然后步步上溯其父节点,直到 DOM 结构的根节点(document),如果有某个节点的 id 为“toc”,则匹配成功,否则继续查找下一个“li”节点。
2.16 尽量避免全局选择器
CSS Code复制内容到剪贴板
[hidden="true"] { … } /* A universal rule */
这里的匹配规则很明显:查找页面上的所有节点,如果有节点存在“hidden”属性,并且其属性值为“true”,则匹配成功。这是最耗时耗力的匹配,页面上的所有节点都需要进行匹配运算,这种规则应尽量避免。










