译者:weimengxi
ID
概要: 禁止使用 ID 作为样式的钩子。
为什么不该在 CSS 样式表中使用 ID 选择器?
唯一性问题
ID 选择器的优先级远大于类名选择器。因此,想要用类名选择器覆盖 ID 选择器的样式是件很难的事。
当我们需要给HTML赋予诸如状态(关于状态有独立章节深入讨论)等的附加含义时, 会变得很麻烦。
#someModule {
color: red;
}
.someModule-override {
color: blue;
}
如果有一个元素的 id 值为someModule , 同时它的 class 值为someModule-override 的类, 它的文本总会是红色。
.someModule {
color: red;
}
.someModule-override {
color: blue;
}
改成上面这样, 文本颜色就会如预期一样变成蓝色了。
但是, 有没有必须使用ID的时候?
有时必须用到 ID。 比如,表单控件通过 ID 关联到某个 label 。 内部的锚点也通过 id 进行绑定。它们都可以提升用户体验。你可以用ID来实现附加的行为,但是不要用来添加样式。
关于 ID 最后的思考
避免使用 ID 作为样式的钩子, 但是要实现其它需求时那就用吧。使用 ID 时, 坚持命名规范,就像给类命名时一样。 详细说明请见其它章节。