您的位置: 首页 > 技术文档 > 网页制作 > 在 Mozilla UI 中书写高效率 CSS
jQuery中10个非常有用的遍历函数 回到列表 精巧支付宝导航条制作教程
 在 Mozilla UI 中书写高效率 CSS

作者:糖伴西红柿 时间: 2010-03-22 文档类型:翻译 来自:

第 1 页 在 Mozilla UI 中书写高效率 CSS [1]
第 2 页 在 Mozilla UI 中书写高效率 CSS [2]

高效 CSS 指南

避免全局规则

确保规则不以全局分类结束

不要给 ID 分类规则指定标签名或者 class

如果有一条样式规则是以 ID 选择符为主选择符的,就别再画蛇添足的加上标签名了。ID 都是唯一的,因此加上标签名反而会无谓地拖慢匹配过程。(当有不同元素使用同一类名,而又需要动态地改变其中一个元素的类名来针对不同情况应用不同样式时是个例外。)

  • BAD – button#backButton { }
  • BAD – .menu-left#newMenuIcon { }
  • GOOD – #backButton { }
  • GOOD – #newMenuIcon { }

不要给 class 分类规则指定标签名

和以上规则类似,所有的类名也是唯一的。标签和类名连缀的写法是一个惯例(但是,如果设计的变更使得需要改变标签就会有灵活性的问题,因为也需要改变 class — 最好选用具有严格语义的名字,这种灵活性也是分离样式表的目标之一)。

  • BAD – treecell.indented { }
  • GOOD – .treecell-indented { }
  • BEST – .hierarchy-deep { }

尽量把规则应用到最明确的类上。

拖慢系统最大的一个原因是有太多的 tag 分类规则了。通过给元素增加类名,可以把这些 tag 类里的规则分一部分去class 分类,就可以不需要浪费时间来试图给一个标签匹配那么多的的规则了。

  • BAD – treeitem[mailfolder="true"] > treerow > treecell { }
  • GOOD – .treecell-mailfolder { }

避免后代选择符

CSS 中,后代选择符(descendant)[注1]的耗能高的可怕,尤其是选择符的规则是在 tag 或者全局分类中。子选择符(child selector)则经常是真正所需。如果没有主题模块所有者的明确允许,UI CSS 中禁止使用后代选择符。

  • BAD – treehead treerow treecell { }
  • BETTER, BUT STILL BAD (see next guideline) – treehead > treerow > treecell { }

Tag 类规则中最好不要包含后代选择符

避免使用具有 tag 类规则的后代选择符。这会明显地增加匹配时间(尤其是这些规则会被多次匹配时)。

  • BAD – treehead > treerow > treecell { }
  • BEST – .treecell-header { }

小心子选择符的使用

要小心使用子代选择符。如果有别的方式可以不用,就不要用子选择符。尤其是子选择符被大量使用在 RDF 树和类似的菜单中时。

  • BAD – treeitem[IsImapServer="true"] > treerow > .tree-folderpane-icon { }

要注意模版中来自 RDF 的属性是可以复制的!可以利用这一点把 RDF 属性复制到需要改变那个属性的子元素上。

  • GOOD – .tree-folderpane-icon[IsImapServer="true"] { }

倚赖继承

了解并使用那些可以继承的属性。XUL widgetry[注2] 已经明确设置了,因此可以把 list-style-image 或者 font 规则应用到父级标签上,它将渗透进匿名内容。因此就不需要浪费时间为那些匿名内容写规则了。

  • BAD – #bookmarkMenuItem > .menu-left { list-style-image: url(blah); }
  • GOOD – #bookmarkMenuItem { list-style-image: url(blah); }

上例中,样式化匿名内容的需求(没有理解 list-style-image 可以继承)导致了一条 class 类规则。其实这条规则应该属于最明确的一类 — ID 类规则。

要记住,尤其是那些匿名内容,它们都有同样的 class。上面那个不好的例子导致需要检查每个菜单的图标是否包含在 bookmarks 菜单项中。这是非常可怕的高昂消耗(有很多菜单);除 bookmarks 菜单之外,这条规则不应该被其他任何菜单想检查。

使用 -moz-image-region

把一堆图片放到一个单独的图片文件中,并用 -moz-image-region[注3] 选中会有显著的性能提升。()

注1: 后代选择符(descendant selector) 子选择符(child selector) 是有区别的。单从字面来讲,后代选择符,顾名思义包括儿子、孙子、重孙子等所有后代; 子选择符只是指儿子,就不管那帮孙子了。

注2: XUL widgetry 不清楚是啥。

注3: 貌似想法和现在说的 CSS sprites 方法差不多,要知道这可是十年前(2000年)的文章啊。 – 糖伴西红柿

本文链接:http://www.blueidea.com/tech/web/2010/7459.asp 

出处:
责任编辑:moby

上一页 在 Mozilla UI 中书写高效率 CSS [1] 下一页

◎进入论坛网页制作WEB标准化版块参加讨论,我还想发表评论

相关文章 更多相关链接
精巧支付宝导航条制作教程
first-letter的一个小妙用
border边框在浏览器中的渲染方式
5 个简单实用的 CSS 属性
CSS圆角——圆角化图片
作者文章 更多作者文章
清除浮动新说
IE bug:1像素的dotted/dashed边框
CSS背景全攻略
关于浮动的前世今生
IE下img多余5像素空白解决方法
关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule
>> 分页 首页 前页 后页 尾页 页次:2/21个记录/页 转到 页 共2个记录

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2