高效CSS开发核心要点摘录

做网站的,我们都知道尽量减少请求数,压缩CSS代码量,使用高效CSS选择符等方式可以来提高网站的载入速度和访问速度,也就是优化网站的性能

下面分析了一些CSS的书写方式,很多都是我们知道并且正在使用的,这里记录一下,提醒自己以后写CSS的时候尽量从这些方面出发来使用,对于CSS的性能提升有很大的帮助,对于你自己写出来的代码也更加的靠谱了。

本文摘录之“高效CSS开发核心”,一些我认为是已经不需要用规则来约束的就不再啰嗦了,感兴趣的读者可以去看全文。

1.把CSS文件放在<head>中,避免使用@import(因为使用了import之后就相当于把另外的CSS放在了标签的底部)

2.避免使用CSS表达式,CSS表达式只在IE中有用,他执行的次数随着页面的缩小、放大和滚动等都会出现变化。

3.html标签使用小写

<!-- Not recommended -->
<A HREF="/">Home</A>
<!-- Recommended -->
<img src="google.png" alt="高效CSS开发核心要点摘录" alt="Google">

4.使用UTF-8编码

html中: <meta charset="utf-8"> css中: @charset "utf-8";

5.不要使用实体引用

比如“>”尽量写成"&gt;"

6.省略零值后面的单位和省掉起始的0值

margin: 0; padding: 0; font-size: .8em;

7.使用高效的CSS选择符

8.避免tag+id或者class+id

button#goButton {...};----->>#goButton .fundation#testIcon {...};----->>#testIcon

9. 关于tag+class

button.indented {...}----->>.button-indented {...}

程序员们经常会给某个 Class 前面加上标签名称(Tag Name),以更精确且快速的定位该节点,但是这样往往效率更差。因为页面上的 class 在全局范围内来讲应该是唯一的,用唯一的 Class 名称来定位一个节点往往比组合定位更加快捷。事实上,这种做法也可以避免由于开发修改页面元素的类型(Tag)而导致的样式失效的情况,做到样式与元素的 分离,两者独立维护。

10. 尽量避免后代选择器

就是说要多用子类选择器这种方式(IE6不支持),“>”

treehead treerow treecell {...} ----->> treehead > treerow > treecell {...}

Descendant 选择器是耗时相对高的选择器,通常来讲,它在 CSS 里的使用应该是尽量避免的,如果能用 child 选择器替代就应该尽量这样去做。

11. 发布之前一定要进行压缩

可使用YUI Compressor或类似软件进行压缩后再发布。

12. 省略嵌入资源的协议

即可避免混合内容问题(mixed content issues)也可以缩减文件大小,这个倒是可以尝试,不过不建议,有些可能看不懂。

<!-- Not recommended -->
<script src="http://www.google.com/js/gweb/analytics/autotrack.js"></script>
<!-- Recommended -->
<script src="//www.google.com/js/gweb/analytics/autotrack.js"></script>
/* Not recommended */
.example { background: url(http://www.google.com/images/example); }
/* Recommended */
.example { background: url(//www.google.com/images/example); }

13. 文件结构

我觉得这个倒是可以有,不过如果是项目的话,我怕设计到的CSS文件太多,造成管理不便,如果是内容较少的情况下可以用这种方式。

由于图像等资源一般只有CSS文件使用,故可将图像文件夹放到CSS文件同级目录,这样就可使用相对路径,节省字节数

input {background: url("images/shadow background.gif");}

14. 文件夹命名

这个推荐使用这种方式,不过有一些主题等是习惯了使用复数了,具体情况具体分析,可以使用尽量用下面这种单数。

通常文件夹会被命名为其所代表的资源的复数形式

images assets fonts

其实大可不必,使用单数形式可以节省许多字节,尤其是当每个项目的结构都类似时

img asset font

对于下面一段包含58字节的代码:

input {background: url("/images/shadow background.gif");}

优化后变为52字节,即10%的压缩:

input {background: url(img/shadow-background.gif);}

如果在使用缩写,则可进一步缩减:

input {background: url(img/shadow-bg.gif);}

如果一个项目有几百行这样的代码,那么就会节省几百字节了。如果站点访问量超大,则可节省数目客观的带宽资源。

15. 滤镜简写

selector { -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=65)"; filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=65); }

filter的版本是IE8以下的,–ms-filter的版本是IE9以上的,YUI会将其压缩为:

selector { -ms-filter:"alpha(opacity=65)"; filter:alpha(opacity=65); }

由于YUI的广泛使用极其社区开发着的强大力量,说明这种写法已经是经过深度测试的写法,可以放心使用。

16 Gzip压缩与CSS书写

这个仁者见仁智者见智,有些人认为从CSS的加载方式(即CSS先确定显示、位置、整体)。

Goolge建议按照字母顺序书写CSS规则,方便维护。其他公司也有自己的规范。从Gzip压缩角度,只要整个文档中的书写顺序保持一致即可,可以提高Gzip压缩比率。

background: fuchsia; border: 1px solid; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; color: black; text-align: center; text-indent: 2em;

17 更少的请求比更小的尺寸重要

文件可以适当的合并,只保留基本的层级即可

<link rel="stylesheet" href="http://css.somedomain.com/reset.css" type="text/css" />
<link rel="stylesheet" href="http://css.somedomain.com/global.css" type="text/css" />
<link rel="stylesheet" href="http://css.somedomain.com/home.css" type="text/css" />

实际应用中当然不可能做到上面这么多的要点,而且也需要根据项目的差异来做出调整,这里整体上我觉得是可以给我一点启发的,比如不要使用“标签+类名、标签+ID、使用单数的文件结构、把图片放在CSS的同级目录、滤镜的简写、更少的请求。

原文链接:高效CSS开发核心要点摘录 版权所有,转载时请注明出处,违者必究。
注明出处格式:前端开发博客 (http://caibaojian.com/efficient-css-development.html)

时间: 2024-11-08 06:11:13

高效CSS开发核心要点摘录的相关文章

自动化高效css开发,畅谈less的灵活变化

css是一种让html与样式分离解析而出现的代码,它的出现大大提高了程序员的工作效率,和后期进行维护的效率.但是发展至今,由于起死板单调的写法,越来越不能满足程序员们灵活的思维,很多时候是种恨铁不成钢的心情来写css,于是,有一些聪明的程序员就发明了less. less是为了简化css开发,灵活css开发而出现的,其功能非常强大,灵活性也很高,上手也很快,所以越来越受到前端开发的青睐,其中的基本语法我就不讲了,相信度娘上有无数的教程可以参阅,我就来讲点利用less灵活的特点做的一些东西. 1 l

高效团队开发:工具与方法

这篇是计算机类的优质预售推荐<高效团队开发:工具与方法 >. 提高项目质量,加快开发速度,降低运维成本. 编辑推荐 重要的邮件太多而无从下手 没有能用于验证的环境 覆盖了其他组员修正的代码 无法自信地进行代码重构 不知道bug的修正日期,也不能追踪退化 -- 那么,你可能需要这本书! 系统讲解团队开发所必需的工具和方法 详细介绍各个工具的特性及使用要点,并进行比较 自动化意识贯穿全书,真正实现高效开发 内容摘要: 本书以团队开发中所必需的工具的导入方法和使用方法为核心,对团队开发的整体结构进行

jquery widget开发——核心框架

框架代码: $.widget( "myns.myplugin", { //默认参数 options: { clear: null }, //初始化,控件生命周期内只运行一次 _init:function(){ ,} //创建控件,控件生命周期内会运行多次 _create: function() { }, //设置参数 _setOption: function( key, value ) { // In jQuery UI 1.8及以前用法 $.Widget.prototype._set

webkit webApp 开发技术要点总结

webkit webApp 开发技术要点总结 如果你是一名前端er,又想在移动设备上开发出自己的应用,那怎么实现呢?幸好,webkit内核的浏览器能帮助我们完成这一切.接触 webkit webApp的开发已经有一段时间了,现把一些技巧分享给大家 : 1. viewport: 也就是可视区域.对于桌面浏览器,我们都很清楚viewport是什么,就是出去了所有工具栏.状态栏.滚动条等等之后用于看网页的区域, 这是真正有效的区域.由于移动设备屏幕宽度不同于传统web,因此我们需要改变viewport

35款加速网站开发的 CSS 开发工具

网络有很很多的 CSS 工具和教程可用,它可以帮助设计人员和开发人员轻松.快速地学习 CSS 技术.这些工具中在高效开发 Web 应用程序中发挥重要作用. 在这篇文章中,我们收集了35个最好的 CSS 工具用于加速网站开发,如创建 CSS 菜单,动画,三维模型,响应式页面,动画按钮等等.我们希望你会发现下面的 CSS 工具能够满足您的需求. 您可能感兴趣的相关文章 精心推荐几款超实用的 CSS 开发工具 精心挑选的在线 CSS3 代码生成工具 24款非常实用的CSS3工具终极收藏 推荐10个特别

dubbo核心要点及下载(dubbo二)

一.dubbo核心要点 1):服务是围绕服务提供方和服务消费方的,服务提供方实现服务,服务消费方调用服务. 2):服务注册 对于服务提供方它需要发布服务,而由于应用系统的复杂性,服务的数量.类型不断的膨胀. 对于服务消费方,它最关心如何获取它所需要的服务.而面对复杂的应用系统,需要管理大量的服务调用. 而且对于服务提供方和服务消费方来说,它们还有可能同时兼具这两种角色,即需要提供服务,又需要消费服务. 通过服务统一管理起来,可以有效的优化内部应用.对服务发布/使用的流程管理.服务注册中心可以通过

使用HTML语言和CSS开发商业站点(9)

#div_1 dl{ margin:0px;/*dl默认有外边距 跟ul一样*/ padding:0px; height:46px; margin-top:15px;} #div_1 dl dd{ margin:0px;/*dd默认有外边距*/ float:left; margin-left:10px; height:100%; line-height:46px; } 好的,使用HTML语言和CSS开发商业站点 就到这里结束    接下来是    使用Java实现面向对象编程 多多关注.评论,谢

如何编写更棒的代码:11个核心要点

作为一个合格的程序员,有太多的理由促使你去编写干净利落且可读性强的代码.最重要的是因为你编写的代码,将来会有很多人一次次地阅读.当你有一天回过头来看自己的代码时,你就会明白编写优雅的代码是多么的重要.另外,如果别人来阅读你编写的代码,你是否想知道别人看到那些烂代码无比抓狂的感受.因此,花多一点的时间去编写优雅的代码,将来说不定会给你节省更多的时间. 那么,如何编写更棒的代码,下面是11条基本规则: 1.保持方法简短扼要 2.永远永远不要将同一个变量用于不同的目的 3.尽可能让变量和方法的名称能够

【转】精心推荐几款超实用的 CSS 开发工具

原文转自:http://www.html5cn.org/article-5741-1.html 摘要: 当你开发一个网站或 Web 应用程序的时候,有合适的工具,绝对可以帮助您节省大量的时间.在这篇文章中,我为大家收集了超有用的 CSS 开发工具.          当你开发一个网站或 Web 应用程序的时候,有合适的工具,绝对可以帮助您节省大量的时间.在这篇文章中,我为大家收集了超有用的 CSS 开发工具. 对于 Web 开发人员来说,找到有用的 CSS 开发工具,就像找到一个魔灯,可以让他那