Archive for 五月, 2009

2009. 05. 31

纯CSS鱼眼菜单

  
  纯css鱼眼菜单的灵感来自于 Mac OSX Dock , 效果是让带小图标的菜单在鼠标滑过、停留时有放大的效果,鼠标停放的菜单两边的小图片也有一定比例的变化,具体效果可以猛点此处看DEMO。

实现图标向下放大效果:
1.HTML代码:

路可

2.CSS代码:

下载 [...]

2009. 05. 30

EasySlider-最简洁的JQuery滚动插件

Easy Silder是由Alen Grakalic开发的基于JQuery的滚动插件,它支持以下功能:

自动滚动
连续滚动
首页和尾页按钮
可隐藏按钮
可为按钮自定义样式
支持垂直滚动
兼容一个页面多个滚动效果

 这个插件的最大特点就是使用起来非常简单,它的作者将在下个版本提供更多功能,比如暂停/播放的控制,带页数的跳动按钮等。本站(jsssc.cn)会继续关注该插件的更新改进,目前最新版本为EasySiler1.5。
EasySilder的参数说明:
prevId: ‘prevBtn’,
prevText: ‘Previous’,
nextId: ‘nextBtn’,
nextText: ‘Next’,
controlsShow: true,
controlsBefore: ”,
controlsAfter: ”,
controlsFade: true,
firstId: ‘firstBtn’,
firstText: ‘First’,
firstShow: false,
lastId: ‘lastBtn’,
lastText: ‘Last’,
lastShow: false,
vertical: false,
speed: 800,
auto: false,
pause: 2000,
continuous: false
参数说明:
controlsShow:默认为true,如果改为false滚动条滚动模式变为自动。
controlsBefore、 controlsAfter:默认为空,用于在控制按钮上增加自定义的HTML片段,controlsBefore为增加在按钮前面的代码,controlsAfter为增加在按钮后面的代码。
controlsFade:默认为true,如果设置成false,滚动到最后一页的时候按钮不会消失。
firstShow and lastShow:是否显示第一页和最后一页的按钮。
auto:设置滚动条自动滚动,一般不用修改。
pause:自动滚动时设置的滚动间隔时间的毫秒数。
continuous :设置为true时,滚动到最后一页后会跳到第一页继续滚动。
 
Demos

没有样式效果的示例
带样式的默认设置效果示例
垂直滚动,带第一页和最后一页按钮
连续不停的自动滚动 
多个滚动效果整合,包好了图片文字,并且是不同滚动模式

下载EasySiler1.5

本站文章如无特殊说明均为原创,转载的朋友请保留文章链接和出处:
本文链接:http://jsssc.cn/easy-slider-15-the-easiest-jquery-plugin-for-sliding/
出处:路可

2009. 05. 28

23个实用Javascript Tab导航插件

   实现tab页很多方法,有一些是用纯CSS实现,其他大多数是基于jquery、mootools或者其他js框架实现,既然有这么多可以拿来即用的插件,又何苦重复造轮子。
 
Jquery插件
1.jQuery UI Tabs

这个tab脚本已经绑定在jqueryUI库里,它有很多的配置项,比如你可以配置出可以滚动的tab,tab嵌套等等。
 
2. jQuery idTabs

idTabs可以让你在网页中轻松地加入tab页,而且它还可以对它进行无穷无尽扩展。
 
Mootools插件
 
3.MooTabs

Mootabs是mootools1.1实现的一个微型插件,可以通过ajax来加载tab。
4.Pluggable MooTools Tabs

 
5.Sliding Tabs

Sliding Tabs也是基于mootools1.1实现的,如果你是在使用mootools1.2你应该看看下面这个。
 
6.Perspective Tabs

Perspective Tabs是一款简易的mootools插件,它可以再小空间里放下很多tab卡,而且可以滑动。
 
7.MorphTabs

仅支持mootools1.2+。
 
8.Accessible Ajax Tabs with MooTools

 
基于其他JS框架实现的tab
 
9.Yetii

 
10.DOMTab

11. JavaScript Tabifier

 
12.dhtmlxTabber

 
13.Tabtastic

 
14.Kollermedia Tab Menu

 
15.Ajax Project – Tabbed Page Interface

 
16.XP Style Tab Panes

 
17.Ajax Tabs Content Script from Dynamic Dr

 
18.DD Tab Menu from Dynamic Drive

 
19.DOM dynamic Tabs

 
20.Tab Pane

 
21.SimpleTabs by Komrade

 
22.Yahoo UI Library: TabView

 
23.Advanced Tabs from EXT JS

 

本站文章如无特殊说明均为原创,转载的朋友请保留文章链接和出处:
本文链接:http://jsssc.cn/23-useful-javascript-tab-navigation-scripts/
出处:路可

2009. 05. 27

10个值得关注的优秀CSS框架

   大多数做过网页设计的都知道“CSS框架”,而且肯定有很多设计师已经开始在作品中使用CSS框架。
  就像其他编程语言一样,CSS也可以把一些重复使用的代码整合起来,这样可以减轻很多的工作量。
  恰当地利用CSS框架可以缩短开发时间,不过话说回来,如果选错了CSS框架胡乱用于实际开发中,必然会适得其反。
 下面介绍的是一些值得深入研究的开源CSS框架,你可以通过搜索轻易地获取源代码。
 
  1.Blueprint:

Bluepring  包含了方便实现浏览器兼容的reset css。另外,它还包含了在网页开发中经常用到的很多外部工具和模板。
 
2.960 Grid System

又一个值得深入研究的CSS框架,提供的源文件包含了Firework、Photoshop、Inkscape等等的模板,可以拿来随手即用,PSD文件中已经预置了参考线,可以为设计师节省不少时间。
 
3.Tripoli Framework
Tripoli可以支持几乎现有的所有浏览器,甚至是IE5,包含了一些基础css库,和一些封装过的CSS插件,比如:Layout、Visual、Type、Negative。
 
4.YAML – Yet Another Multicolumn Layout
YAML是一款开发文档齐全、非常可靠的框架,参照它给出的PDF文档和官方网站上的示例可以很轻松地上手,它也提供很多开发中可以利用的工具,比如李咏YAML Builder可以构造一个机遇YAML的CSS布局实例。
 
5.YUI Grid CSS
YUI Grid CSS不仅支持固定宽度的布局实现还支持不定宽度的布局,这也是它比其他框架更为灵活的地方,你可以下载YUI的cheat sheet和官方网站的YUI Grids Builder来快速上手使用YUI Grids CSS。
 
6.BlueTrip

Blue Trip区别与其他框架的特点是它非常有特色而且十分美观,它的官方网站上有完整的开发文档和demo。
 
7.Content With Style

Conten With Style是一款固定宽度布局的CSS框架,包含了一系列的布局示例比如,一列垂直导航、两列垂直导航等等。
 
8.Elastic CSS Framework

Elastic提供了用声明式语言来定义布局结构和行为,这个框架还刚刚起步,最好的Demo就是它的官网本身。
 
9.Molio CSS/HTML Templates
Mollio的开发始于IE7暴露出很多渲染的问题,它可以作为网站布局的参考,特别适合CSS初学者。
 
10.SenCSS

Sen并没有提供布局方面实例,但是有一些类似baseline, fonts, paddings, margins的css可利用,它包含了一个开发版本和一个发布版本。 
其他的一些CSS框架,可能你也会喜欢: 
WYMstyle
CSS-boilerplate
Typogridphy
CleverCSS
Logicss
 
选择一框合适的CSS框架不管对学习CSS还是实际开发都是非常有用的,熟悉更多的框架就可以通晓这些框架设计和实现的可鉴之处,提高CSS框架设计水平之日可待。

本站文章如无特殊说明均为原创,转载的朋友请保留文章链接和出处:
本文链接:http://jsssc.cn/10-promising-css-framework-that-worth-a-look/
出处:路可

2009. 05. 26

几个CSSReset的方法

正在使用CSS的你,用过CSS Reset吗?当然,或许你用了,却不知道正在用,比如你可能经常用到:
程序代码
* { padding: 0; margin: 0; border: 0; }
这也是一款CSS Reset的方法,让所有的选择器的padding、margin和border都设置成0。这是一种强大的方法,也是最简单,最安全的方法,不过,也是最占用资源的方法。对于小型的网站来说,用这个并不会带来大的资源浪费,但如果是像Yahoo这种架构非常大的网站,刚需要有选择地进行CSS重设,以减少资源浪费。下面是Yahoo的CSS重设代码,也是受最多人喜爱的CSS Reset方法,YUI选择的方法是:
程序代码
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,
form,fieldset,input,textarea,p,blockquote,th,td {
padding: 0;
margin: 0;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
fieldset,img {
border: 0;
}
address,caption,cite,code,dfn,em,strong,th,var {
font-weight: normal;
font-style: normal;
}
ol,ul {
list-style: none;
}
caption,th {
text-align: left;
}
h1,h2,h3,h4,h5,h6 {
font-weight: normal;
font-size: 100%;
}
q:before,q:after {
content:”;
}
abbr,acronym { border: 0;
}

2009. 05. 26

9款很棒的网页绘制图表JavaScript框架脚本

9款很棒的网页绘制图表JavaScript框架脚本

1.Flot

Flot是基于 jQuery框架绘制图表的纯Javascript框架。它可在客户端即时绘制并生成各种图形。重要的是它使用简便(还有很多可选的设置)、吸引人的视觉 效果和交互功能,如图表缩放和鼠标跟踪等。该javascript框架适用于我们所熟知的 Internet Explorer 6/7/8, Firefox 2.x+, Safari 3.0+, Opera 9.5+ and Konqueror 4.x+浏览器。 查看图表样例
2.JS Charts

JS Chart是需要一些简 单或无需手工书写编码的基于Javascript的免费图表生成器。使用JS Chart可以很简单很容易的完成你的生成图表任务,因为你只需要使用客户端脚本(即浏览器端),无需多余的插件或服务器端模块。你只需要准备好JS Chart脚本、包含图表数据的XML或Javascript数组,你的图表就准备就绪了。
3. TableToChart

TableToChart 是基于MooTools JS框架的网页图表生成器,它通过包含在HTML table中的值来绘制图形图表。您可以使用Table标签来生成图表,条、线和饼都可以。
4.PlotKit

PlotKit是一款绘制图表图形的Javascript框架。它支持HTML Canvas、基于Adobe SVG Viewer的SVG和本地浏览器。
5. Yahoo UI Charts Control

YUI图表管理可以在网页中以垂直条、横条、线、饼等形式可视化呈现图表。主要特色包括支持DataSource、鼠标悬停数据提示、组合图表和皮肤功能。
6. ProtoChart

ProtoChart是基于Prototype和Canvas可创建非常漂亮图表的开源框架。它支持线、条、饼、曲线、混杂(mix)、面图表等多种数据串联在统一图形中。它支持IE6/7, FF2/3 和 Safari 甚至可以在 iPhone上工作.
7. EJSChart

EJSChart支持鼠标跟踪、鼠标事件、键盘跟踪和事件、缩放、滚动、十字线增加交互感并为网页图表的用户体验提升了一个档次。您可以选择多种图表类型:线、面、分散数据、饼和函数级数。图表的每个细节都可以自定制。
8.fgCharting
 
fgCharting是基于jQuery框架的简便图表生成器,它也支持各种图表类型并可以自定义参数。
9. 纯Css数据图表

纯CSS代码实现的图表,怎么样,难以置信吧,想知道如何实现的吗?那就来看看这篇纯CSS制作图表的教程吧。
英文原文:Useful scripts to plot charts in web pages
翻译原文:推荐9款很棒的可在网页中绘制图表的JavaScript脚本

2009. 05. 26

Yahoo!网站性能最佳体验的34条黄金守则内容篇

Yahoo!的Exceptional Performance团队为改善Web性能带来最佳实践。他们为此进行了一系列的实验、开发了各种工具、写了大量的文章和博客并在各种会议上参与探讨。最佳实践的核心就是旨在提高网站性能。
Excetional Performance团队总结出了一系列可以提高网站速度的方法。可以分为7大类34条。包括内容、服务器、cookie、CSS、JavaScript、图片、移动应用等七部分。
其中内容部分一共十条建议:
一、内容部分

尽量减少HTTP请求
减少DNS查找
避免跳转
缓存Ajxa
推迟加载
提前加载
减少DOM元素数量
用域名划分页面内容
减小iframe的大小
避免404错误

1、尽量减少HTTP请求次数
终端用户响应的时间中,有80%用于下载各项内容。这部分时间包括下载页面中的图像、样式表、脚本、Flash等。通过减少页面中的元素可以减少HTTP请求的次数。这是提高网页速度的关键步骤。
减少页面组件的方法其实就是简化页面设计。那么有没有一种方法既能保持页面内容的丰富性又能达到加快响应时间的目的呢?这里有几条减少HTTP请求次数同时又可能保持页面内容丰富的技术。
合并文件是通过把所有的脚本放到一个文件中来减少HTTP请求的方法,如可以简单地把所有的CSS文件都放入一个样式表中。当脚本或者样式表在不同页面中使用时需要做不同的修改,这可能会相对麻烦点,但即便如此也要把这个方法作为改善页面性能的重要一步。
CSS Sprites是减少图像请求的有效方法。把所有的背景图像都放到一个图片文件中,然后通过CSS的background-image和background-position属性来显示图片的不同部分;
图片地图是 把多张图片整合到一张图片中。虽然文件的总体大小不会改变,但是可以减少HTTP请求次数。图片地图只有在图片的所有组成部分在页面中是紧挨在一起的时候 才能使用,如导航栏。确定图片的坐标和可能会比较繁琐且容易出错,同时使用图片地图导航也不具有可读性,因此不推荐这种方法;
内联图像是使用data:URL scheme的方法把图像数据加载页面中。这可能会增加页面的大小。把内联图像放到样式表(可缓存)中可以减少HTTP请求同时又避免增加页面文件的大小。但是内联图像现在还没有得到主流浏览器的支持。
减少页面的HTTP请求次数是你首先要做的一步。这是改进首次访问用户等待时间的最重要的方法。如同Tenni Theurer的他的博客Browser Cahe Usage – Exposed!中所说,HTTP请求在无缓存情况下占去了40%到60%的响应时间。让那些初次访问你网站的人获得更加快速的体验吧!

2、减少DNS查找次数
域名系统(DNS)提供了域名和IP的对应关系,就像电话本中人名和他们的电话号码的关系一样。当你在浏览器地址栏中输入www.kuqin.com 时,DNS解析服务器就会返回这个域名对应的IP地址。DNS解析的过程同样也是需要时间的。一般情况下返回给定域名对应的IP地址会花费20到120毫秒的时间。而且在这个过程中浏览器什么都不会做直到DNS查找完毕。
缓存DNS查找可以改善页面性能。这种缓存需要一个特定的缓存服务器,这种服务器一般属于用户的ISP提供商或者本地局域网控制,但是它同样会在用户使用 的计算机上产生缓存。DNS信息会保留在操作系统的DNS缓存中(微软Windows系统中DNS Client Service)。大多数浏览器有独立于操作系统以外的自己的缓存。由于浏览器有自己的缓存记录,因此在一次请求中它不会受到操作系统的影响。
Internet Explorer默认情况下对DNS查找记录的缓存时间为30分钟,它在注册表中的键值为DnsCacheTimeout。Firefox对DNS的查找 记录缓存时间为1分钟,它在配置文件中的选项为network.dnsCacheExpiration(Fasterfox把这个选项改为了1小时)。
当客户端中的DNS缓存都为空时(浏览器和操作系统都为空),DNS查找的次数和页面中主机名的数量相同。这其中包括页面中URL、图片、脚本文件、样式表、Flash对象等包含的主机名。减少主机名的数量可以减少DNS查找次数。
减少主机名的数量还可以减少页面中并行下载的数量。减少DNS查找次数可以节省响应时间,但是减少并行下载却会增加响应时间。我的指导原则是把这些页面中 的内容分割成至少两部分但不超过四部分。这种结果就是在减少DNS查找次数和保持较高程度并行下载两者之间的权衡了。
3、避免跳转
跳转是使用301和302代码实现的。下面是一个响应代码为301的HTTP头:
HTTP/1.1 301 Moved Permanently
Location: http://example.com/newuri
Content-Type: text/html
浏览器会把用户指向到Location中指定的URL。头文件中的所有信息在一次跳转中都是必需的,内容部分可以为空。不管他们的名称,301和302响 应都不会被缓存除非增加一个额外的头选项,如Expires或者Cache-Control来指定它缓存。<meat />元素的刷新标签和JavaScript也可以实现URL的跳转,但是如果你必须要跳转的时候,最好的方法就是使用标准的3XXHTTP状态代 码,这主要是为了确保“后退”按钮可以正确地使用。
但是要记住跳转会降低用户体验。在用户和HTML文档中间增加一个跳转,会拖延页面中所有元素的显示,因为在HTML文件被加载前任何文件(图像、Flash等)都不会被下载。
有一种经常被网页开发者忽略却往往十分浪费响应时间的跳转现象。这种现象发生在当URL本该有斜杠(/)却被忽略掉时。例如,当我们要访问http: //astrology.yahoo.com/astrology 时,实际上返回的是一个包含301代码的跳转,它指向的是http://astrology.yahoo.com/astrology/  (注意末尾的斜杠)。在Apache服务器中可以使用Alias 或者 mod_rewrite或者the DirectorySlash来避免。
连接新网站和旧网站是跳转功能经常被用到的另一种情况。这种情况下往往要连接网站的不同内容然后根据用户的不同类型(如浏览器类型、用户账号所属类型)来 进行跳转。使用跳转来实现两个网站的切换十分简单,需要的代码量也不多。尽管使用这种方法对于开发者来说可以降低复杂程度,但是它同样降低用户体验。一个 可替代方法就是如果两者在同一台服务器上时使用Alias和mod_rewrite和实现。如果是因为域名的不同而采用跳转,那么可以通过使用Alias 或者mod_rewirte建立CNAME(保存一个域名和另外一个域名之间关系的DNS记录)来替代。
4、可缓存的AJAX
Ajax经常被提及的一个好处就是由于其从后台服务器传输信息的异步性而为用户带来的反馈的即时性。但是,使用Ajax并不能保证用户不会在等待异步的 JavaScript和XML响应上花费时间。在很多应用中,用户是否需要等待响应取决于Ajax如何来使用。例如,在一个基于Web的Email客户端 中,用户必须等待Ajax返回符合他们条件的邮件查询结果。记住一点,“异步”并不异味着“即时”,这很重要。
为了提高性能,优化Ajax响应是很重要的。提高Ajxa性能的措施中最重要的方法就是使响应具有可缓存性,具体的讨论可以查看Add an Expires or a Cache-Control Header。其它的几条规则也同样适用于Ajax:
Gizp压缩文件
减少DNS查找次数
精简JavaScript
避免跳转
配置ETags
让我们来看一个例子:一个Web2.0的Email客户端会使用Ajax来自动完成对用户地址薄的下载。如果用户在上次使用过Email web应用程序后没有对地址薄作任何的修改,而且Ajax响应通过Expire或者Cacke-Control头来实现缓存,那么就可以直接从上一次的缓 存中读取地址薄了。必须告知浏览器是使用缓存中的地址薄还是发送一个新的请求。这可以通过为读取地址薄的Ajax URL增加一个含有上次编辑时间的时间戳来实现,例如,&t=11900241612等。如果地址薄在上次下载后没有被编辑过,时间戳就不变,则 从浏览器的缓存中加载从而减少了一次HTTP请求过程。如果用户修改过地址薄,时间戳就会用来确定新的URL和缓存响应并不匹配,浏览器就会重要请求更新 地址薄。
即使你的Ajxa响应是动态生成的,哪怕它只适用于一个用户,那么它也应该被缓存起来。这样做可以使你的Web2.0应用程序更加快捷。
5、推迟加载内容
你可以仔细看一下你的网页,问问自己“哪些内容是页面呈现时所必需首先加载的?哪些内容和结构可以稍后再加载?
把整个过程按照onload事件分隔成两部分,JavaScript是一个理想的选择。例如,如果你有用于实现拖放和动画的JavaScript,那么它 就以等待稍后加载,因为页面上的拖放元素是在初始化呈现之后才发生的。其它的例如隐藏部分的内容(用户操作之后才显现的内容)和处于折叠部分的图像也可以 推迟加载
工具可以节省你的工作量:YUI Image Loader可以帮你推迟加载折叠部分的图片,YUI Get utility是包含JS和 [...]

2009. 05. 26

清理浮动的全家

来源:http://www.twinsenliang.net/skill/20090413.html
早段时间特别的忙,忙到站点一直没有更新;但是这段时间也是偷偷的做了一些的工作,比如对站点的JS进行了压缩,构思labs分站以及聚合分站。
而此段时间最烦的是森林群里面的一群人每天上班都在吵,然后我就每次都装嫩的在里面问:“各位高手,劳烦请问一下;清除浮动怎么弄?”
清除浮动一个凡是做页面的人都会遇到的一个东西,但是是否大家都能够清楚的知道,全方位的了解呢?于是一闲下来了马上写了这样的一篇文章,不能讲面面俱到,然而基本能将我所知道的倾囊相授了。
 
我们粗略的一起来看看清除浮动的办法一共有多少个。对应的DEMO
1. 采用伪类:after进行后续空制的高度位零的伪类层清除
2. 采用CSS overflow:auto的方式撑高
3. 采用CSS overflow:hidden的方式产生怪异适应
4. 采用display:table将对象变成table形式
5. 采用div标签,以及css的clear属性
6. 采用br标签,以及css的clear属性
7. 采用br标签,以及其自身HTML的clear属性
粗略的看,他们都能将问题解决;然而他们另外一方面又有着各自的利弊。(一一对应)
1. 优点结构语义化完全正确,不会产生其余的怪异问题。
缺点复用方式不当容易造成代码量急剧增大。
建议最外层轻浮动时使用,或清晰模块化复用方式的人使用。
2. 优点结构语义化完全正确,代码量极少。
缺点多个嵌套后,点击最外层的轻浮动框会遭成最外层至最内层内容全选(FF);或者在mouseover造成宽度改变时会出现最外层模块有滚动条(IE)。
建议内个模块使用,请勿嵌套。
3. 优点结构语义化完全正确,代码量极少。
缺点内容增多时候极易不会自动换行而内容被隐藏掉。
建议宽度固定时使用,请勿嵌套。
4. 优点结构语义化完全正确,代码量极少。
缺点盒模型属性已经改变,可想而知奇异事件自然多得你数都数不到。
建议如果你不想改Bug改死你的话,最好不要使用;不过可以作为alpha版本当中临时性的忽悠下测试。
5. 优点代码量极少,复用性极高。
缺点完全不能完美的适应语义化,不利于改版以及需求变更。
建议初学者使用,可以让你快速的解决浮动问题。
6. 优点语义化程度比第5种情况要更优;代码量极少,复用性极高。
缺点语义化依旧不完美,不利于改版以及需求变更。
建议初学者使用,可以让你快速的解决浮动问题。
7. 优点语义化程度比第5、6种情况要更优;代码量最少,复用性极高。
缺点语义化依旧不完美,不利于改版以及需求变更。
建议引导初学者思维升级时使用,让其明白与其用classname来控制一种表现,倒不如回归到WEB1.0的时代的网页直接用html属性来控制表现,毕竟后者的代码量更少。

2009. 05. 26

50个有用的网站设计资源

CSS库
做设计的时候总是容易没有灵感。到CSS库去看看别人做得设计也许会帮你找到不少灵感。如果你的设计足够优秀让这些CSS库收录的话,那么这还会为你带来很多访问者
Unmatchedstyle
cssBeauty
cssvault
Stylegala
CSS Drive
css thesis
Styleboost
CSSElite
CSS Import
Web Creme
CSS Mania
DesignShack 
Web标准
遵守Web标准来编写代码会使你的代码干净而且有对搜索引擎有良好的亲和度。一个可以用100行代码就搞定的代码,为什么一定要把他搞成1001行呢?
Developing With Web Standards – 这篇文档介绍了如何在Web标准下省时省力的构建你的站点,同时还能带来良好的用户体验。另外还介绍了一些技巧教会你如何提升网站的质量以及流量。
Roadmap to Standards
Web Standards Project
Web Standards Checklist
Importance of Web Standards 
验证器
在你明白什么是Web标准以后,下面两个小工具可以帮你测试你的站点是否符合标准。
HTML & XHTML Validator
CSS Validator 
易用性
易用性也许是网站设计中最关键的因素之一。良好的设计不但会带来良好的用户体验,而且会提升你的站点的网站转换律
What is usability
Usability First – 叙述网站易用性的重要程度
Weblog Usability: The Top Ten Design Mistakes – Blog往往不是很注重网站的易用性,这使得Blogger很难获得新的读者以及忠实的读者
Web Design & Usability Guidelines -这本在线的教程一共分成了18章,它将教你如何设计优秀易用的网站
Web usability – the basics
The Culture of Usability – 如何使用最小的花销却从易用性中得到更多-测试程序.
90% of All Usability [...]

2009. 05. 24

10个提高CSS代码质量最佳实践

 
回头去看自己写的CSS代码,你很容易就可以发现那些代码都乱成一团了,可能是因为你还没有规划好就开始马马虎虎虎地乱写一通,或者是你的代码夹杂了太多的Hack代码,还可能是因为那些代码改动太过频繁了。
  不管出于是什么原因,我们都应该认真考虑怎么写好CSS代码,让那些代码能够更加简洁、易于控制、易于维护。
参考下面这10点心得去实践可以让你不会再那么头痛CSS代码该怎么写。
1.保持代码井井有条
   永远不要随随便便地想到一个id、class就一股脑把代码写下去,这样写出来的代码非常难维护也不好扩展,所以应该先考虑如何组织结构更加清晰的CSS代码,以便更好地利用CSS继承的特性。
  记住,最常见的元素一定要先声明,再声明具体的某个元素。这样可以让让具体某个元素继承那些已经声明过的属性,也可以让你在需要的时候修改特定的属性。这种结构的CSS代码易于阅读,更符合逻辑结构。
  结构化编写CSS代码可以让自己以后能够轻松维护那些代码(或者让替你擦屁股的人松一口气)。可以参考下面这样的结构:

reset
链接、预定义类型
总体布局
二级布局
表单
各种其他元素……

2.标注代码作者、日期、其他重要信息
   在css代码的头部写明是谁写了这些代码,在什么时候,怎么联系上作者,特别是在制作模板和主题的时候。像这样的信息:

注意图片中的示例颜色代码,多年来我发现列出一份CSS中用到的颜色示例代码并说明大概是什么颜色,在不管是最初编写颜色样式的时候还是以后可能会进行的改进都是极其有效地,至少可以再你打开取色器输入那些16进制颜色代码的之前可以让你有个大概的印象,或者可以在需要改变颜色的时候提供快速的参考。
3.制作样式库
   一旦你的CSS代码保持相对良好的结构的时候,你可以把那些最经常使用的代码独立出来作为一个库来不断复用。
你可以为不同的用途制作相应的版本,比如一个两栏布局的样式,一个博客主题、用来打印的样式等等。
如果你要为每个相同或者类似样式规则的页面重新编写各自的CSS代码,你肯定会疯掉。

4.使用通用的命名规范
你可能注意到可第一点提到的CSS代码中的声明了两个ID:col-alpha、col-beta,为什么不把他们命名成:col-left、col-right?我们要考虑将来可能的需求变更。
明年你可能就需要把现在网站中的左边那一块放到右边去,你不需要为重命名HTML中的相关元素,也不需要为了变换一个元素的位置去改变样式表中的那个对应的id。
你也可以把左边的元素移到右边,然后保留它原来的id:col-left,但是问题出在哪里?如果这个id的样式让元素呆在左边,有人希望它就应该一直呆在左边,这样就不没给你太多的空间去改变它的位置。
css的一个主要的有点就是能把样式和内容分离,重新设计站点的时候你只需要稍微修改一下你的样式代码而无须去修改html代码,所以不要在css中使用有特定环境限制的命名方式,应该始终如一地使用更为通用的命名规则。
不要在CSS中使用那些有特定表意命名(比如位置,颜色之类的),用.link-blue来标示蓝色的连接或许不错,但是当客户要你把链接颜色改为橙色的时候,你要去修改链接的class呢还是把.link-blue里的color改为orange?不要让自己的命名规范把自己的手脚束缚了。
语义化命名,而不是为表现命名 ,举个例子.comment-blue 来的比.comment-beta不通用,.post-largefont也比 .post-title使用起来更受限制。
5.使用连接符而不是下划线
因为有的一些老的浏览器不支持下划线,为了某种意义上的向后兼容,改掉你使用下划线(_)的习惯,用连接符(-)来代替.
6.不要重复造轮子
把有相同属性的元素归为一组,以便可以重复利用那些相同属性。比如h1 和h2的都有相同的字体、颜色、margin,你就应该这么写:

特别主要想margin、padding等属性都有相应的简写形式。

 

当然你要理解这样写代表样式属性顺序。
7.优化CSS代码
  掌握了上面的原则已经可以减少CSS代码的大小,代码量越少载入速度就越快,也越方便维护。
  把那些不需要的代码通通切掉,能归为一组的都写在一起,使用别人封装的CSS库时特别要注意,因为你可能在自己的代码中继承了很多根本用不着的属性。还有一点,不用为0px,0em等加上单位。
8.先编写Gecko下的基本样式,再去考虑兼容webket和IE
为了解决最然让人头痛的浏览器问题,你可以先在firefox下编写调试出最基础的样式代码,然后在其他核心的浏览器(比如webket、IE)做一点修改即可,因为在firefox下运行良好的代码一般在其他浏览器下是不会有太大问题的。
9.验证你的CSS
要充分利用W3C’s free CSS validator.如果在遇到问题的时候(比如你写的布局代码没有效果)一片茫然的时候,这东西可以帮你大忙。
10.保持代码整洁
通过javascript、后台控制、条件注释等手段把那些为了实现特定浏览器效果而编写的CSS独立出来,就避免了那些可恶的hack代码,这样就可以让最基本的CSS保持整洁,便于管理。
 
原文:10 Best CSS Practices to Improve Your Code
本站文章除特别说明,均为原创,转载的朋友请保留文章链接和出处:
转载自 10个提高CSS代码质量最佳实践  |  路可