css的团队合做规则以及怎样写出高性能的css代码。css
1、使用Reset但并不是全局Resethtml
同浏览器元素的默认属性有所不一样,使用Reset可重置浏览器元素的一些默认属性,以达到浏览器的兼容。但须要注意的是,请不要使用全局Reset: express
*{ margin:0; padding:0; }
html{ color:#000; background:#FFF; } body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td { margin:0; padding:0; } table { border-collapse:collapse; border-spacing:0; } fieldset, img { border:0; }……(引自YUI3-reset.css: http://yui.yahooapis.com/3.17.2/build/cssreset/cssreset.css)
2、良好的命名习惯api
良好的命名习惯,命名有意义,书写规则统一,其余的不用多说了。浏览器
3、代码缩写缓存
CSS代码缩写能够提升你写代码的速度,精简你的代码量(最主要的仍是精简尺寸)。在CSS里面有很多能够缩写的属性,包括margin,padding,border,font,background和颜色值等,若是您学会了代码缩写,本来这样的代码:网络
li{ font-family:Arial, Helvetica, sans-serif; font-size: 1.2em; line-height: 1.4em; padding-top:5px; padding-bottom:10px; padding-left:5px; }
就能够缩写为:ide
li{ font: 1.2em/1.4em Arial, Helvetica, sans-serif; padding:5px 0 10px 5px; }
4、使用继承、合并书写(多重选择器)工具
若是页面中父元素的多个子元素使用相同的样式,那最好把他们相同的样式定义在其父元素上,让它们继承这些CSS样式。这样你能够很好的维护你的代码,而且还能够减小代码量。那么原本这样的代码:post
#container li{ font-family:Georgia, serif; } #container p{ font-family:Georgia, serif; } #container h1{font-family:Georgia, serif; }
就能够简写成:
#container{ font-family:Georgia, serif; }
合并多个CSS选择器为一个,若是他们有共同的样式的话。这样作不但代码简洁且可为你节省时间和空间。如:
h1{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; } h2{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; } h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
能够合并为:
h1, h2, h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
5、 适当的代码注释
代码注释可让别人更容易读懂你的代码,且合理的组织代码注释,可以使得结构更加清晰。你能够选择作的样式表的开始添加目录:
/*------------------------------------ 1. Reset 2. Header 3. Content 4. SideBar 5. Footer ----------------------------------- */
如此你代码的结构就一目了然,你能够容易的查找和修改代码。
而对于代码的主内容,也应适当的加以划分,甚至在有必要的地方在对代码加以注释说明,这样也有利于团队开发:
/*** Header ***/ #header{ height:145px; position:relative; } #header h1{ width:324px; margin:45px 0 0 20px; float:left; height:72px;} /*** Content ***/ #content{ background:#fff; width:650px; float:left; min-height:600px; overflow:hidden;} #content h1{color:#F00}/* 设置字体颜色 */ #content .posts{ overflow:hidden; } #content .recent{ margin-bottom:20px; border-bottom:1px solid #f3f3f3; position:relative; overflow:hidden; } /*** Footer ***/ #footer{ clear:both; padding:50px 5px 0; overflow:hidden;} #footer h4{ color:#b99d7f; font-family:Arial, Helvetica, sans-serif; font-size:1.1em; }
6、 保持CSS的可读性
书写可读的CSS将会使得更容易查找和修改样式。对于如下两种状况,哪一种可读性更高,我想不言而明。
/*** 每一个样式属性写一行 ***/ div{ background-color:#3399cc; color:#666; font: 1.2em/1.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px; padding:5px 0 10px 5px; width:30%; z-index:10; } /*** 全部的样式属性写在同一行 ***/ div{ background-color:#3399cc; color:#666; font: 1.2em/1.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px;padding:5px 0 10px 5px; width:30%; z-index:10; }
7、选择更优的样式属性值
CSS中有些属性采用不一样的属性值,虽然达到的效果差很少,当性能上却存在着差别,如
border:0把border设为0px,虽然在页面上看不见,但按border默认值理解,浏览器依然对border-width/border-color进行了渲染,即已经占用了内存值。
而border:none把border设为"none"即没有,浏览器解析"none"时将不做出渲染动做,即不会消耗内存值。因此建议使用border:none;
一样的,display:none隐藏对象浏览器不做渲染,不占用内存。而visibility:hidden则会。
8、使用<link>代替@import
首先,@import不属于XHTML标签,也不是Web标准的一部分,它对于较早期的浏览器兼容也不高,而且对于网站的性能有某些负面的影响。
9、 使用外部样式表
这个原则始终是一个很好的设计实践。不单能够更易于维护修改,更重要的是使用外部文件能够提升页面速度,由于CSS文件都能在浏览器中产生缓存。内置在HTML文档中的CSS则会在每次请求中随HTML文档从新下载。因此,在实际应用中,没有必要把CSS代码内置在HTML文档中:
<style type="text/css" > #container{ .. } #sidebar{ .. } </style>
而是使用<link>导入外部样式表:<link rel="stylesheet" type="text/css" href="css/styles.css" />
10、 避免使用CSS表达式(Expression)
CSS表达式是动态设置CSS属性的强大(但危险)方法。Internet Explorer从第5个版本开始支持CSS表达式。下面的例子中,使用CSS表达式能够实现隔一个小时切换一次背景颜色:
background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );
如上所示,expression中使用了JavaScript表达式。CSS属性根据JavaScript表达式的计算结果来设置。
表达式的问题就在于它的计算频率要比咱们想象的多。不只仅是在页面显示和缩放时,就是在页面滚动、乃至移动鼠标时都会要从新计算一次。给CSS表达式增长一个计数器能够跟踪表达式的计算频率。在页面中随便移动鼠标均可以轻松达到10000次以上的计算量。
若是必须使用CSS表达式,必定要记住它们要计算成千上万次而且可能会对你页面的性能产生影响。因此,在非不得已,请避免使用CSS表达式。
11、 代码压缩
当你决定把网站项目部署到网络上,那你就要考虑对CSS进行压缩,出去注释和空格,以使得网页加载得更快。压缩您的代码,能够采用一些工具,如YUI Compressor,利用它可精简CSS代码,减小文件大小,以得到更高的加载速度。