我们最常用的有四种选择方法,
Id规则选取,比如
引用内容
button#button{}
#urlBar[type=”text”] { }
div > p > span#demo{}
class规则选取,比如
引用内容
button.toolbarButton { }
.fancyText { }
menuitem > .menu-left[checked=”true”] { }
Tag规则选取,比如
引用内容
td { }
div > p { }
input[type=”checkbox”] { }
统配选择器,比如
引用内容
*
:after
[hidden=”true”]
他们都是从最右边开始匹配,直到最左边整个规则结束。
这样就存在一个问题,比如说最右边的规则已经能确定你要选取到元素。
那更多的规则匹配就造成了性能上的浪费。
比如说div > p > span#demo{}
div > p > span根本没有意义。
改进:
ID是唯一的。没有必要附加多余的规则。也能精准的匹配到。
引用内容
button#button{} -> #button{}
#urlBar[type=”text”] { } -> #urlBar{}
div > p > span#demo{} -> #demo{}
下面应该不会出现<a class=”toolbarButton”></a>所以也可以优化。
引用内容
button.toolbarButton { } -> .toolbarButton{}
用过多的规则,不如直接给元素一个class
比如:div > p > span > a{}
可能给a一个特殊表现的。直接给a写一个class即可。
特殊情况需要特殊对待。
比如有时候要保证页面结构的干净。以便适用后期改版的需要,使用到这种方式。也是可以的。平衡取出一个最佳方案。
使用继承
#demo .left{text-align:left} ->#demo{text-align:left}
注:原文中使用的XUL.对没接触过XUL的同学,可能标签看起来有点怪,但不难理解。
炫 浪 学 院