根据样式表匹配规则,选择器的匹配是从左往右进行匹配的,所以,选择器规则越长则匹配实践越长。因此,选择器选用的优化措施最主要的原则就是,尽量使选择器具有唯一性,减少使用子孙或祖先选择器。
ID 选择器在同一页面只能使用一次,所以此条规则容易理解。
button#backButton {…} /* Bad */
.menu-left#newMenuIcon {…} /* Bad */
#backButton {…} /* Good */
#newMenuIcon {…} /* Good */
尽管 class 选择器可以在同一页面多次使用,但是相对于 HTML 标签来说也算是具有唯一性的,所以此条规则也不难理解。
treecell.indented {…} /* Bad */
.treecell-indented {…} /* Good */
.hierarchy-deep {…} /* Best */
treehead treerow treecell {…} /* Bad */
treehead > treerow > treecell {…} /* BETTER, BUT STILL BAD */
.treecell-header {…} /* Good */
ul li {color: blue;} /* Not so Good */
ol li {color: red;} /* Not so Good */
.unordered-list-item {color: blue;} /* Better */
.ordered-list-item {color: red;} /* Better */
Links: