- 选择器使用规则
- 1. 可以使用
*通用选择器。 - 2. 不要在选择器末尾使用
*通用选择器。 - 3. 如果是页面唯一的元素请使用 ID 选择器。
- 4. 避免重复修饰选择器
- 5. 所有 组合选择器 (
>, +, ~, >>)前后保留一个空格(以空格表示的后代选择器除外)
- 1. 可以使用
选择器使用规则
1. 可以使用 * 通用选择器。
* 通用选择器效率低是一个误区,如有必要可以使用。测试文章关于css通配符性能问题不完全测试
例如:
* {-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;}
2. 不要在选择器末尾使用 * 通用选择器。
CSS 选择器匹配规则是从右往左,例如:
.mod .foo * {border-radius: 6px;}
3. 如果是页面唯一的元素请使用 ID 选择器。
引用为后代选择器和ID选择器而辩护
我一直以来所主张的使用 id 的方式,其实就是 HTML5 新增元素的前身。2000 年时,我们没有 footer 元素,为了给该div中的内容赋以结构上的意义,我们这样写:div id=”footer”。今天,根据人们访问我们网站所用的浏览器和设备,我们可以选择用 HTML5 的 footer 元素替代老方式。但若是我们不能使用 HTML5 元素,使用 id 也没有什么不对的。
但应避免使用多个 ID 选择器。
不推荐的写法:
#header #search {float: right;}
推荐的写法:
#search {float: right;}
4. 避免重复修饰选择器
在一定意义上,这会降低选择器性能。
不推荐的写法:
div#search {float: right;}ul.nav {overflow: hidden;}
推荐的写法:
#search {float: right;}.nav {overflow: hidden;}
5. 所有组合选择器(>, +, ~, >>)前后保留一个空格(以空格表示的后代选择器除外)
不推荐的写法:
.foo>.bar+div~#baz {color: blue;}
推荐的写法:
.foo > .bar + div ~ #baz {color: blue;}
