CSS编写的网页打开流畅相关知识与注意点

2016-02-19 23:27 10 1 收藏

图老师小编精心整理的CSS编写的网页打开流畅相关知识与注意点希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

【 tulaoshi.com - Web开发 】

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)  我们都熟知JavaScript可能会对Web页面的加载与显示产生较大的影响,因此我们常常关注JavaScript是不是会占用客户端较多的资源,然而大部分都会忽略的一件有趣的事情,CSS也会对Web页面载入的效率产生影响。
  我们罗列了十几条相关的知识与注意点,大家可以系统的探讨一下,让我们编写的Web页面打开更加流畅。
  请不要告诉我,你看不懂E文,只是你不愿意看!!!

  1、How the style system breaks up rules 
  The style system breaks rules up into four primary categories. It is critical to understand these categories, as they are the first line of defense as far as rule matching is concerned. I use the term key selector in the paragraphs that follow. The key selector is defined to be the rightmost occurrence of an id selector, a class selector, or a tag selector. 

  1.1、ID Rules 
  The first category consists of those rules that have an ID selector as their key selector. 

button#backButton { } /* This is an ID-categorized rule */
#urlBar[type="autocomplete"] { } /* This is an ID-categorized rule */
treeitem  treerow  treecell#myCell :active { } /* This is an ID-categorized rule */
  1.2、Class Rules 
If a rule has a class specified as its key selector, then it falls into this category. 

button.toolbarButton { } /* A class-based rule */
.fancyText { } /* A class-based rule */
menuitem  .menu-left[checked="true"] { } /* A class-based rule */
  1.3、Tag Rules 
  If no class or ID is specified as the key selector, then the next potential category for a rule is the tag category. If a rule has a tag specified as its key selector, then the rule falls into this category. 

td { } /* A tag-based rule */
treeitem  treerow { } /* A tag-based rule */
input[type="checkbox"] { } /* A tag-based rule */
  1.4、Universal Rules 
  All other rules fall into this category. 

:table { } /* A universal rule */
[hidden="true"] { } /* A universal rule */
* { } /* A universal rule */
tree  [collapsed="true"] { } /* A universal rule */
  2、How the Style System Matches Rules 
  The style system matches a rule by starting with the rightmost selector and moving to the left through the rule's selectors. As long as your little subtree continues to check out, the style system will continue moving to the left until it either matches the rule or bails out because of a mismatch. 
  Your first line of defense is the rule filtering that occurs based on the type of the key selector. The purpose of this categorization is to filter out rules so that you don't even have to waste time trying to match them. This is the key to dramatically increasing performance. The fewer rules that you even have to check for a given element, the faster style resolution will be. As an example, if your element has an ID, then only ID rules that match your element's ID will be checked. Only class rules for a class found on your element will be checked. Only tag rules that match your tag will be checked. Universal rules will always be checked. 

  3、Guidelines for Efficient CSS 
  3.1、Avoid Universal Rules! 
  Make sure a rule doesn't end up in the universal category!

  3.2、Don't qualify ID-categorized rules with tag names or classes 
  If you have a style rule that has an ID selector as its key selector, don't bother also adding the tag name to the rule. IDs are unique, so you're slowing down the matching for no real reason. 

BAD - button#backButton { } 
BAD - .menu-left#newMenuIcon { } 
GOOD - #backButton { } 
GOOD - #newMenuIcon { } 
  3.3、Don't qualify class-categorized rules with tag names 
  Similar to the rule above, all of our classes will be unique. The convention you should use is to include the tag name in the class name. 

BAD - treecell.indented { } 
GOOD - .treecell-indented { } 
  3.4、Try to put rules into the most specific category you can! 
  The single biggest cause of slowdown in our system is that we have too many rules in the tag category. By adding classes to our elements, we can further subdivide these rules into class categories, and then we no longer waste time trying to match as many rules for a given tag. 

BAD - treeitem[mailfolder="true"]  treerow  treecell { } 
GOOD - .treecell-mailfolder { } 
  3.5、Avoid the descendant selector! 
  The descendant selector is the most expensive selector in CSS. It is dreadfully expensive, especially if a rule using the selector is in the tag or universal category. Frequently what is really desired is the child selector. The use of the descendant selector is banned in UI CSS without the explicit approval of your skin's module owner. 

BAD - treehead treerow treecell { } 
BETTER, BUT STILL BAD (see next guideline) - treehead  treerow  treecell { } 
  3.6、Tag-categorized rules should never contain a child selector! 
  Avoid using the child selector with tag-categorized rules. You will dramatically increase the matching time (especially if the rule is likely to be matched more often than not) for all occurrences of that element. 

BAD - treehead  treerow  treecell { } 
BEST - .treecell-header { } 
  3.7、Question all usages of the child selector! 
  Be careful about using the child selector. If you can come up with a way to avoid having to use it, do so. In particular, the child selector is frequently used with RDF trees and menus like so. 

BAD - treeitem[IsImapServer="true"]  treerow  .tree-folderpane-icon { } 
  Remember that attributes from RDF can be duplicated in a template! Take advantage of this fact to duplicate RDF properties on child XUL elements that wish to change based off that attribute. 

GOOD - .tree-folderpane-icon[IsImapServer="true"] { } 
  3.8、Rely on inheritance! 
  Learn which properties inherit, and allow them to do so! We have explicitly set up XUL widgetry so that you can put list-style-image (just one example) or font rules on the parent tag, and it will filter in to the anonymous content. You don't have to waste time writing a rule that talks directly to the anonymous content. 

BAD - #bookmarkMenuItem  .menu-left { list-style-image: url(blah); } 
GOOD - #bookmarkMenuItem { list-style-image: url(blah); } 
  In the above example, the desire to style the anonymous content (without understanding that list-style-image inherits) resulted in a rule that was in the class category, when this rule really should have ended up being in the most specific category of all, the ID category. 
  Remember, especially with anonymous content, that they all have the same classes! The bad rule above causes the icon of every menu to be checked to see if it is contained in the bookmarks menu item. This is hideously expensive (since there are many menus); this rule never should have even been checked by any menu other than the bookmarks menu. 

  3.9、Use -moz-image-region! 
  Putting a bunch of images into a single image file and selecting them with -moz-image-region performs significantly better than putting each image into its own file. 
  Original Document Information - Author: David Hyatt

来源:http://www.tulaoshi.com/n/20160219/1629977.html

延伸阅读
标签: 浮潜
潜水相关注意事项与知识 专业潜水主要是指水下工程、水下救捞、水下探险等方面需要有经验的专业潜水人员进行的潜水活动。而休闲潜水是指以水下观光和休闲娱乐为目的的潜水活动,其中又分为浮潜和水肺潜水。(即使用气瓶和水下呼吸器进行潜水。)我们平常能接触到的潜水观光就属于休闲潜水,而在海滨旅游景区所看到的绝大多数是休闲潜水中...
标签: Web开发
图片的透明效果是网页中需要用到的一种特殊形式,虽然不是非常的常用,但是遇到这样的需求往往有点措手不及,在我们的文章中虽然有这方面的CSS实例,但还没有系统的介绍过CSS Alpha透明,我们今天共同学习一下相关的知识。 关于CSS Alpha透明的相关知识。先请看如下代码: filter:alpha(opacity=50);     &n...
标签: Web开发
网页设计中我们经常会碰到用CSS(层叠样式表)实现隔行换色的需求,您可以根据您的需要,采用下面的任何一种方法,当然要注意适合你的具体编码与需求情况。 一、使用background背景图片 如果行高固定的话,推荐使用隔行换色的背景图,也推荐将行高固定,这样可以兼容一切浏览器。 二、CSS Expression 文字:color:expr...
标签: 秋季养生
秋风乍起,气候干操,而秋日早晨天高气爽,空气清新,是秋天一日中空气最为湿润的好时候,早睡早起,以利收敛神气,使肺不受秋燥的损害,从而保持充沛的活力。秋天,地气清肃,自然界的阳气由发散趋向收敛。古代养生学家认为,此时睡眠宜早卧早起,与鸡俱兴。话说春困秋乏,进入秋季气候宜人,日照时间变短,利用这一好时机尽可能保证睡眠...
标签: Web开发
    1、ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值。 2、同一个的class选择符可以在一个文档中重复出现,而id选择符却只能出现一次;对一个标签同时使用class和id进行CSS定义,如果定义有重复,id选择符做的定义有效,是因为ID的权值要比CLASS大。 3、一个兼容性调整(IE和Mozilla)的笨办法:初学...

经验教程

234

收藏

40
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部