高效的CSS

我们最常用的有四种选择方法,

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}

原文:http://developer.mozilla.org/en/docs/Writing_Efficient_CSS
注:原文中使用的XUL.对没接触过XUL的同学,可能标签看起来有点怪,但不难理解。

赞(0) 打赏
未经允许不得转载:WEB前端开发 » 高效的CSS

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏