Archive for 四月, 2009

2009. 04. 30

FireFox&IE下javascript的7点差异

  现在由于各种原因现在还是有很多用户依然钟爱IE6,感觉那一部分人并不喜欢改变浏览器使用习惯,IE7都出来这么久了也没见多少占有率,甚至IE8都要强行自动更新了也不见什么效果,可以理解的是有些用户是因为工作场合的要求而使用IE6,所以我们经常要做很多额外的代码工作来兼容各种主流的浏览器,不过当IE6的使用率在10%以下的时候也就没有这个必要了。
 IE&Firefox 在DOM、事件等上有很多自己的实现,下面这些是比较常见的语法上的区别:
1.CSS的float属性
由于float在javascript中是保留字,所以获取元素的float属性不能像其他属性一样el.style.jsCssProperty,为了获取id为container 的DIV的float属性:
IE 的做法:
document.getElementById(”container “).style.styleFloat =”left”
而Firefox是这样:

1. document.getElementById(“container “).style.cssFloat = “left”;  

 2.获取元素的最终样式
    el.style.jsCssProperty可以轻松获取元素的CSS样式,不过经过javascript修改样式后,这样获取的样式属性并不是元素最终变现的样式 ,要获取一个id为container 的div的最终背景颜色:
IE的语法:

var myObject = document.getElementById(“container “);   

var myStyle = myObject.currentStyle.backgroundColor;

Firefox下:

var myObject = document.getElementById(“header”);   

var myComputedStyle = document.defaultView.getComputedStyle(myObject, null);   

var myStyle = myComputedStyle.backgroundColor;  

3.获取元素class
  类似float样式,要通过getAttribute获取class属性值在两个浏览器的下做法也是不一样,要获取id为container的元素的class
IE下:

var myObject = document.getElementById(“header”);   

var myAttribute = myObject.getAttribute(“className”); 、

Firefox:

var myObject = document.getElementById(“header”);   

var myAttribute = myObject.getAttribute(“class”);

4.<label>标签的for属性
IE这样获取<label>的for属性:

var myObject = document.getElementById(“myLabel”);   
var myAttribute = myObject.getAttribute(“htmlFor”);  

Firefox:
 5.获取鼠标的坐标
IE下:

var myCursorPosition = [0, 0];   

myCursorPosition[0] = event.clientX;   
myCursorPosition[1] = event.clientY; 

Firefox: 

var myCursorPosition = [0, 0];   

myCursorPosition[0] = event.pageX;   
myCursorPosition[1] = event.pageY;  

6.获取可视窗口的大小
 IE:

var myBrowserSize = [0, 0];   
myBrowserSize[0] = document.documentElement.clientWidth;   
myBrowserSize[1] = document.documentElement.clientHeight;  

 Firefox: 

var myBrowserSize = [0, 0];   

myBrowserSize[0] = window.innerWidth;   
myBrowserSize[1] = window.innerHeight

7.透明滤镜
    IE下设置透明滤镜的CSS代码是这样:

#myElement {   

    filter: alpha(opacity=50);   
}

    Firefox设置透明的CSS代码: 

#myElement {   
    opacity: 0.5;   
}  

 所以JS处理滤镜属性的时候相应的是这样:
IE:

var myObject = document.getElementById(“myElement”);   
myObject.style.filter = “alpha(opacity=80)”;  

Firefox:

var myObject = document.getElementById(“myElement”);   
myObject.style.opacity = “0.5″;   
 
 
 
 
 
 

 当然IE和Firefox在javascript中还有非常多的语法差别,实现机制也不一样,这几个仅供参考。

2009. 04. 29

将PSD效果图制作成XHTML+CSS文件

继上一篇教程,《如何用Photoshop设计一个具有现代感的博客界面》,现在我们来看看如何将这个概念设计转化为完整的由XHTML和CSS组成的标准网页。从PS里面将之前的设计稿从PS里面输出然后再加上编码,这样我们就会得到一个完整的博客设计。

2009. 04. 26

11个超精简实用Jquery插件

11个超精简实用Jquery插件

2009. 04. 24

解决ajax超长字符串、中文乱码问题

在最近的项目测试中发现通过ajax发送超长参数时遇到这个脚本错误:
 
系统找不到指定资源
the system cannot locate the resource specified
 
意思是参数太长,无法发送,测试的浏览器是IE6//IE7//IE8,由于利用了ActiveX所以其他浏览器的情况可能不一样。
 
查询了大量资料也没找到头绪,后来改用xhr.send(params)来发送数据的时候就通过了,不过数据发送到后台的时候却遇到中文乱码问题,修改了content-type为 application/x-www-form-urlencoded; charset=utf-8后,后台顺利取得经过编码的参数,解码之后即可获取中文。相关代码如下:
 

var xhr = new xmlHttp();//获取xmlhttp
var url = AppRoot + “dispatch”;
var param = “VLparam=”+param;
xhr.open(”POST”,url,true);
       xhr.setRequestHeader(‘Content-length’, this.params.length);                
       xhr.setRequestHeader(“Content-type”,“application/x-www-form-urlencoded; charset=utf-8″); //注意编码设置
xhr.send(params);//在这里发送数据

 
后台接收参数后的java处理代码:
 

params= request.getParameter(“params”);
params=java.net.URLDecoder.encode(params,”utf-8”);//解码

 
所以慎用GBK、GB2321对数据进行编码,UTF-8是比较合适的选择。
 
 
 

2009. 04. 22

整理及优化CSS代码的七个原则

来自:彬Go
作为网页设计师(前端工程师),你可能还记得曾经的那个网页大小建议:一个网页(包括HTML、CSS、Javacript、Flash和图片)尽量不要超过30KB的大小,随着互联网的日益庞大,网络带宽也在飞速发展,很多设计师已经不再考虑这条30KB的理想准则。随着越来越受欢迎的CSS布局和Javascript对网站用户体验的强化,使得这种现象越来越普遍,尤其是对于大型网站来说,仅仅一个CSS文件就已经超过了30KB的上限。
但是即便如此,现在也有很多准则来帮助你在完成CSS布局后进行CSS代码的压缩和优化。CSS代码优化的目的并不仅仅是减少CSS文件的大小,它还能让你的CSS代码更有条理、更高效。在彬Go,你将会学到更多关于CSS代码优化的知识,这能帮你更熟悉CSS代码的规范性。熟悉这些概念还能让你成为更全面的网页设计师,从而写出更优化的CSS代码。
您还可以参阅暴风彬彬曾经讲解过的《10个CSS简写技巧让你永远受用》。
1.使用简写
如果你现在还对简写一点都不了解,那你就又写落伍了,不过幸好,学起来并不是很难。使用简写是一种让代码减少的最简单方法。没有比现在更适合实践代码简写的时候了,还等什么,一起来看看吧。
Margin、border、padding、background、font、list-style和outline 都是可以进行简写的属性。CSS简写就是不再使用不同的相类似属性的声明…
p { margin-top: 10px; 
     margin-right: 20px; 
     margin-bottom: 30px; 
     margin-left: 40px; }
你可以把它们简写成这样:
p { margin: 10px 20px 30px 40px; }
浏览器可以通过不同数量的属性值来解释你定义的CSS代码,请看图解:

上面的简写图解说明的是依据不同的属性值可以进行不同的缩写,这种方法同样适用于padding和Border-width属性。
Font的简写对于缩小代码量很有帮助,而且能让你少打很多字母; )

Font简写的例子。注:如果没有定义某个属性值的话,将继承副级元素的定义或使用默认值。
如果你对以上简写方法已经了如指掌,你还可以看看以下两个简写教程(英文),也许会对你有所帮助:

CSS Shorthand Guide(CSS简写指导)
Efficient CSS with shorthand properties(高效CSS属性的简写)

2.避免使用Hack

Jon Hick的博客 hicksdesign.co.uk/journal 使用浏览器条件性注释

Hack是一个糟糕的东西,它会为不同浏览器定义一样的代码,使得CSS繁冗。现在我们知道使用条件性注释来代替hack,他们在IE6和IE7中是被认可的,甚至IE团队也推荐这样使用。使用条件性注释服务于符合浏览器特性专用的CSS代码,因此,更小的、核心的CSS代码用来服务于遵从标准的浏览器,只有需求条件出现的时候(比如IE),才会去下载额外的CSS文件!下面来看看IE6使用条件性注释的代码范例:
<!–[if IE 6]> 
       <link rel=”stylesheet” type=”text/css” href=”ie6.css” mce_href=”ie6.css”> 
<![endif]–>
这段代码使得IE6去下载额外的ie6.css解析它专用的css代码。同样的,如果针对IE7只用把上面的6与7替换就行了。
3.使用留白
无论是为了自己阅读还是二次开发,都要让CSS保持良好的可读性,留白就充当了关键的角色。
我们不鼓励你为了得到一个更小的CSS文件,就去掉所有的空白格式,如tab,换行,空格等。这里推荐嵌套的代码使用一个tab缩进,所有属性独立一行。

对比上图中的两种CSS书写格式,哪一种格式能让你更加节约阅读和修改的时间呢?留白的效果显而易见,它会让你更容易管理代码。
4.移除多余的结构(frameworks)和重设(resets)

Nathan Smith的 960 Grid System CSS framework使用的重置规则
如果你选择使用CSS framework,包括你自己写的,如果你去检查代码一定会发现该framework包含的一些规则并不适用于你当前的文件,它们是可以被删除的。
由此可以想到的还有reset,YUI Grid CSS 使用的reset和Eric Meyer’s 重设(Reset) 目前都很流行, Resets能够移除不同浏览器的默认样式,使得页面在各个浏览器之间的表现一致。但是它们通常包含了一个大的网站需要的所有属性,一些例如<pre>,<code>,<sub>,<dfn>,<var>等等属性对于普通网站来说根本不会用上,删掉那些你用不上的。Eric Meyer也会鼓励你这样做!
framework和reset会很好的帮助你的工作,但是如果不去掉那些你用不上的使用,反而会拖累你页面的效率和可读性。
5.让CSS能保证日后的维护

Doug Bowman的 stopdesign.com CSS 为层使用特殊的选择器
另一种优化CSS代码的方法是按照你的习惯将CSS生命分成清晰的结构块。将CSS文件的声明用注释分隔开并进行排版,可以更方便自己在很长时间以后重新审理这个CSS文件,到那时你的效率会高出许多。
然而,暴风彬彬更崇尚那种拆分布局风格,也就是给每种布局一个单独的CSS文件。Andy Clarke的《超越CSS》(Transcending CSS)一书也是提倡这种方法。
6.记录你的工作

David [...]

2009. 04. 21

成功的用户界面的八个特性

来自:译言
当你构建你的用户界面和网站的时候,有各种各样的关于界面设计方法和模式的信息你可以使用, 对常见问题的解决方案和一般可用性的建议。下列专家给出的准则可能会引导你创造一个良好的用户界面, 但是究竟什么才是一个良好的界面? 一个有价值的用户界面应该具有那些特性?
以下八个特性是我认为一个良好的用户界面所必须的:

清楚
简明
熟悉
易响应
一致
吸引力
高效
宽容

让我们仔细看看每一个特性:
1.  Clear清楚的
清晰度是用户界面设计最重要的元素。事实上,用户界面设计的所有目的是为了使人们能够与您的系统通过沟通和功能来进行交互。 如果人们不知道你的应用程序怎样工作或在你的网站上应该去哪里,他们会困惑和沮丧。

这是什么呢?鼠标移到WordPress的按钮时工具提示会弹出解释其职能。
2. Concise 简明
清晰的用户界面是很好的,但是,您应该谨慎,不要陷入过度明晰。定义和解释很容易被添加,但是你这样做的同时也增大了规模。您的界面规模增加。添加过多的解释,您的用户将不得不花费过多的时间去读它们。
不仅要保持清晰,而且还保持简洁。当你能用一句话解释一项功能的时候就不要用三句话。当你可以用一个单词标记一个项,就不要用两个。 保持简洁可以节省你的用户的宝贵的时间。 同时保持清晰和简明并不容易,需要足够的时间和努力来实现,但其回报是值得的。

在 OS X 的音量控制中使用两个小图标以显示的音量从低到高。
3.  Familiar熟悉
许多设计师努力使自己的界面,直观。 但到底直观的真正意思是什么?直观也就是就是说可以自然地,本能地理解和领会。但是你怎么能做到直观一些?你可通过是它变的熟悉来实现。
熟悉就是, 跟你以前遇到过的东西相似。当你熟悉的东西,你就知道怎样它怎么做-你知道会发生什么事情。 弄清你的用户熟悉的并把它们融合到你的用户界面中。

GoPlan的标签页式界面。 标签很熟悉 , 因为他们模仿文件夹上的标签。 你清楚知道点击标签您将浏览该节和其他地方的标签将继续存在为了进一步导航。
4.  Responsive易响应
易响应意味着两件事。 首先,易响应意味着快速。 如果没有软件在后台,界面应该响应很快。等待加载和缓慢的界面是令人沮丧。 看起来加载的很快, 反正就是界面快速载入(即使内容尚未赶上)改善了用户体验。
易响应也意味着界面提供某种形式的反馈。界面应该反馈给用户,告知他们现在怎么了。 你成功地按下那个按钮吗?你将如何知道?按钮应显示一个被按了的状态反馈, 或许可以把按钮上的文字改成“正在加载… ”并且禁用按钮。 是软件挂了还是内容载入中?用转动的轮子或显示进度栏的方式来保持用户在进程中。

Gmail会显示一个进度栏当您第一次进入您的收件箱。 而不是逐步载入网页时,一旦一切准备就绪整个页面即时显示。
5.  Consistent一致
之前我谈过关于上下文的重要性 ,以及它应如何指导你的设计决定。我认为,适应任何给定的上下文是很聪明,但是,一个界面仍然应保持一定程度的一致性。
一致的界面,使用户能够开发惯用模式-他们会了解不同的按钮,标签,图示和其他界面元素的外观,并识别他们。认识到在不同的情况他们所做的事情不同。他们也将了解特定的东西如何工作,能够从过去的经验中更快的总结知道如何操作新功能。

在Microsoft Office的用户界面是一致的是有原因的。
6.  Attractive吸引力
这可能有一点争议,但我相信一个良好的界面应该有吸引力。 吸引力在某种意义上,是与界面交互变得是愉快。是的,你可以让你的用户界面简单,易于使用,有效率和易反应,它将尽其出色-但如果你可以做额外的一步,使之有吸引力的。那样用户体验会真正令人满意。当你的软件使用起来是令人愉快的,你的客户或工作人员将不仅是简单地使用它-他们会期待着使用它。
当然有许多不同类型的软件和网站,所有的创作针对的不同的市场和用户。什么样看来’好’对任何一个特定的观众都会有所不同。 这就是说,你应该为了你的用户来包装你的界面的的外观和风格。 此外,美感设计应适度使用,并且是为了加强功能。美化界面不同于加载时使用多余的眼睛糖果。

谷歌是众所周知的极简洁的界面 ,他们关注功能重于形式,但他们显然的花费时间美化了 Chrome用户界面元素 ,如按钮和图标 ,使它们看起来正好体现了微妙的梯度和像素超薄突出。
7.  Efficient高效率
用户界面像是车辆,带你去你要到的地方。这些地方是软件应用程序或网站的不同的功能。 一个良好的界面可让您在执行这些功能更快。 现在, ‘有效’听起来像一个相当模糊的属性-如果你把所有其他的事情在这个清单上,当然界面到头来还是需要高效? 差不多,但不完全。
你真正需要做的是使界面能高效的找出用户努力想要实现的,然后让他们可以有条不紊的做到。 您必须确定您的应用程序应该如何工作’ -什么功能它需要有,什么样的目标是你努力努力争取实现? 实现一个界面,可以让人们轻松地完成他们想要做的,而不只是简单的实现对各个功能的访问。

苹果公司已经确认了人们在其iPhone上想要对照片做三个关键的事情,并在照片控制中提供按钮来分别完成他们。
8.  Forgiving宽容
没有人是完美的,当使用你的软件或网站必定有人会犯错误。 如何处理这些错误将成为你的软件的质量一个重要指标。不要惩罚用户-建立一个宽容的界面,纠正问题。
一个宽容的界面可以使你的用户远离代价高昂的错误。例如,如果有人删除了重要的信息,他们可以轻松地重新检索或撤消这一行动? 当有人浏览到损坏或不存在的网页,他们会看到什么?他们会迎接一个加密的错误提示还是得到了一些有用的替代目的地?

错误的删除了电子邮件?Gmail可让您迅速取消上一次的操作。
To conclude…结束…
实现这些特性实际上可能同实现另外一些特性产生冲突。 例如,试图使一个界面清晰,您可能会增加太多的描述和解释,即最终使整个界面变得大而笨重。 [...]

2009. 04. 17

7个AJAX Loading ICON制作站

 
处理ajax的DOM过渡效果时loading icon是必不可少的,如果厌烦了那些毫无创意转来转去的小图标,你可以看看下面这些站点提供的gif icon制作出来的效果,可以选择图标背景颜色、字体颜色、图标大小、显示风格:
Preloaders.net

现作gif loading的网站,可以选择前景色、背景色、透明度、载入速度,那是相当bug……
Ajaxload

类似preloaders,不支持修改速度。
Load Info

各种16 × 16 , 24 × 24和48 × 48 。眼花缭乱。
Web Script Lab

支持背景和前景色,有三种预定义的速度。
Chimply

比前面几个相对强大一点。
mentalized Activity Indicators

这个网站的icon颜色比较丰富。
SanBaldo Ajax Loading Animated GIF

本文链接:http://jsssc.cn/seven-ajax-loading-icon-generator/
转载请保留链接并注明出处:路可

2009. 04. 17

CSS文档流与块级元素和内联元素

CSS文档流与块级元素(block)、内联元素(inline),之前翻阅不少书籍,看过不少文章, 看到所多的是零碎的CSS布局基本知识,比较表面.看过O’Reilly的<CSS权威指南>,发现里面提到的文档流概念让我很敏感. 可恶的是书中并没有解释文档流是什么东西,或许作者觉得这个太简单了以至于不值一提.但我觉得,这个概念实在太重要了.理解了它,一堆CSS布局的理论都 变得易于理解,并且体会到CSS这套设计的合理性所在. 于是我根据猜测,再加实验,得出一下说法.如有错误,纯属正常.
文档流
将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流.
每个非浮动块级元素都独占一行, 浮动元素则按规定浮在行的一端. 若当前行容不下, 则另起新行再浮动.
内联元素也不会独占一行. 几乎所有元素(包括块级,内联和列表元素)均可生成子行, 用于摆放子元素.
有三种情况将使得元素脱离文档流而存在,分别是浮动,绝对定位, 固定定位. 但是在IE中浮动元素也存在于文档流中(还让我觉得这样很合理&gt;<).
浮动元素不占任何正常文档流空间,而浮动元素的定位还是基于正常的文档流,然后从文档流中抽出并尽可能远的移动至左侧或者右侧。文字内容会围绕在浮动元素周围。当一个元素从正常文档流中抽出后,仍然在文档流中的其他元素将忽略该元素并填补他原先的空间。
浮动概念让人迷惑根源在于浏览器对理论的解读造成的。只能说很多人以IE做标准,其实它不是。
基于文档流, 我们可以很容易理解以下的定位模式:

相对定位,
即相对于元素在文档流中位置进行偏移. 但保留原占位.
绝对定位,
即完全脱离文档流, 相对于position属性非static值的最近父级元素进行偏移
固定定位,
即完全脱离文档流, 相对于视区进行偏移.

接下来还有几个问题我搞不明白的

作为三大基本元素之一的内联元素, 它跟块级元素的主要区别在哪?
Clear属性取right值时怎么理解? 貌似实验情况总跟理论不符.内联元素是什么意思呢?什么是块级别元素。《CSS权威指南》中文字显示:任何不是块级元素的可见元素都是内联元素。其表现的特性是“ 行布局”形式,这里的“行布局”的意思就是说其表现形式始终以行进行显示。比如,我们设定一个内联元素border-bottom:1px solid #000;时其表现是以每行进行重复,每一行下方都会有一条黑色的细线。如果是块级元素那么所显示的的黑线只会在块的下方出现。p、h1、或div等元素常常称为块级元素,这些元素显示为一块内容;Strong,span等元素称为行内元素,它们的内容显示在行中,即“行内框”。(可以使用display=block将行内元素转换成块元素,display=none表示生成的元素根本没有框,也既不显示元素,不占用文档中的空间)A:行内就是在一行内的元素,只能放在行内;块级元素,就是一个四方块,可以放在页面上任何地方。
B:说白了,行内元素就好像一个单词;块级元素就好像一个段落,如果不另加定义的话,它将独立一行出现。
C:一般的 块级元素诸如段落&lt;p>、标 题<h1><h2>…、列表,<ul><ol><li> 、表格<table>、表单<form>、DIV<div>和BODY<body>等元素。而内联元素则如: 表单元素<input>、超级链接<a>、图像<img>、<span> ……..
D:块级无素的显著特点是:每个块级元素都是从一个新行开始显示,而且其后的无素也需另起一行进行显示。
E:<span>在CSS定义中属于一个行内元素,而<div>是块级元素。
对于学过CSS的人来说一听就能明白。可对于新手来说不易理解,我主要对新手说通熟点吧!
用容器这一词会更容易形象理解它们的存在与用途,行内元素相当一个小容器,而<div>相当于一个大容器,大容器当然可以放一个小容器 了。<span>就是小容器,这样一说你也许会在脑海中有一个初步的印象了吧,如果我们想在大容器中装一些清水。但我也想在里装一些墨水怎么 办?很简单,我们把小容器拿出来装上墨水然后放入大容器里的清水中不就成了吗。
我在举个简单的一个实际例子吧:比如
<div>上海网站制作-www.86215.com</div>
我想用CSS定义字母c的样式,因此我们就可以用到<span>了。
<div>上海网站设计- <span>http://www.86215.com</span> W3C标准</div>
块元素(block element)一般是其他元素的容器元素
块元素一般都从新行开始,它可以容纳内联元素和其他块元素,常见块元素是段落标签’P”。“form”这个块元素比较特殊,它只能用来容纳其他块元素。
如果没有css的作用,块元素会顺序以每次另起一行的方式一直往下排。而有了css以后,我们可以改变这种html的默认布局模式,把块元素摆放到你想要 的位置上去。而不是每次都愚蠢的另起一行。需要指出的是,table标签也是块元素的一种,table based layout和css based layout从一般使用者(不包括视力障碍者、盲人等)的角度来看这两种布局,除了页面载入速度的差别外,没有其他的差别。但是如果普通使用者不经意点了 查看页面源代码按钮后,两者所表现出来的差异就非常大了。基于良好重构理念设计的css布局页面源码,至少也能让没有web开发经验的普通使用者把内容快 速的读懂。从这个角度来说,css layout code应该有更好的美学体验吧。
你能够把块容器元素div想象成一个个box,或者如果你玩过剪贴文载的话,那就更加容易理解了。我们先把需要的文章从各种报纸、杂志总剪 下来。每块剪下来的内容就是一个block。然后我们把这些纸块按照自己的排版意图,用胶水重新贴到一张空白的新纸上。这样就形成了你自己独特的文摘快报 了。作为一种技术的延伸,网页布局设计也遵循了同样的模式。.
内联元素(inline element)一般都是基于语义级(semantic)的基本元素。内联元素只能容纳文本或者其他内联元素,常见内联元素 “a”。
块元素(block element)和内联元素(inline element)都是html规范中的概念。块元素和内联元素的基本差异是块元素一般都从新行开始。而当加入了css控制以后,块元素和内联元素的这种属 性差异就不成为差异了。比如,我们完全可以把内联元素cite加上display:block这样的属性,让他也有每次都从新行开始的属性。
可变元素的基本概念就是他需要根据上下文关系确定该元素是块元素或者内联元素。可变元素还是属于上述两种元素类别,一旦上下文关系确定了他的类别,他就要遵循块元素或者内联元素的规则限制。大致的元素分类见全文。
关于inline element的中文叫法,有多种内联元素、内嵌元素、行内元素、直进式元素。基本上没有统一的翻译,爱怎么叫怎么叫吧。另外提到内联元素,我们会想到有个display的属性是display:inline;这个属性能够修复著名的IE双倍浮动边界问题。
块元素(block element)
  * address – 地址
  * blockquote – [...]

2009. 04. 14

20个主流CSS酷站

下午在整理收藏夹的时候发现许多精心收藏的好站点都被我压箱底了,实在是不该,无意中在sitepoint看到一篇介绍更多采用目前最主流CSS酷站的文章,这里的网站看起来都是耳目一新,做了一整天的系统界面,偶尔YY一下纯粹意义上的front-end-develop还是相当有感觉的。
1.CSS Zen Garden

 《CSS禅意花园》网站版,相当清秀。
2. Meyerweb

超酷的CSS边框效果。
3. A List Apart

大量优秀的文章,同样也很漂亮。
4.W3Schools

大量的初级教程,可以做为手册查阅。
5.CSS3.info

这里有关于CSS3的一切。
6.Position Is Everything
 

关于CSS的各种牛角尖问题。
7.Holy CSS Zeldman!

8.CSS-Tricks
 
9. CSS Mania, CSS Remix, CSS Website,  CSS Vault

10.Monster Templates , Open Source Templates 

css模板。
11.ESPN.com

OMG,ESPN是在宣传CSS的?
12.W3.org

13. jQuery

14.Section 508

15.CSS-Discuss

16.YUI CSS Library: Grids, Reset, Base,  Fonts
 
17.I Love Typography

18.Chris Pederick

19.MySpace

20.WestCiv

2009. 04. 14

从通用提示中提升用户体验

来自:Alibaba.com UED
web2.0时代后到SNS社区再到云算法网站的SaaS平台。多交互流程和用户自定义的复杂化,都需要各种各样的提示信息来给用户带来引导。
通用提示是网页的重要组成部分,应用的多元化造成复杂的提示场景:

网站运者会在网站的变更中加上提示文字;
开发人员的系统提示也会出现在页面上;
一些网站独特的功能中也必须给出相应的提示信息来引导用户;

种种的情况导致每当有提示出现时,需求方都要去找交互设计师进行相应的沟通。当成一项需求去进行开发,从文案到视觉、布局,再将以前做好的提示模板拿出来改动、从运营PO,产品规划师PD,UED部们的交互、视觉,发布时QA的质量监控。。。等等部门,改丝毫而动全身,成本提升,工作严重下降。
那么对其进行量化和归类的重要性就可见一斑了。下面我总结了一些通用的提示信息:

通用提示信息分为四种:
第一类:提示,它诠释当前需要提示内容的信息,依附于所提示的内容显示。
alt:图片的XTHML提示信息,主要是为了SEO优化和低端环境下的提示;

title:文字、操作的解释,在大多数情况下用于段落显示不全的提示信息;

tips:对信息的对话云式的提示,用作在当前区域的提示;

注:在XTHML中,系统题注的alt和title会在几秒中后消失,对于比较重要的提示建议用tips或者用JS行为来控制提示信息。
第二类:反馈,是由一个操作所引导的提示页面,并独立成提示区域,通常在页面的顶部显示。
构成:
图标(可选):跟据不同的提示场景来应用。

字体:指字体上的强弱变化和色彩区别;
如有操作,需给出操作引发的结果提示和详细内容;
如果通过用户介入,当前流程可继续执行,需要提示用户或进行引导到相应功能页面;
为起到提示的作用,提示内容必须单独成行或与其他内容独立;
文案不能太长,适当情况请换行;
文案 文案不能有责备的词汇;
需要告知用户引发错误的原因,除非系统异常,其他错误都应以用户看的懂得文字进行描述;
业务规则不满足的提示:{说明不满足的业务规则},不能执行{##}操作!
系统异常的提示:{显示系统错误信息},请与服务人员联系等!
用例:
成功
场景:成功提示;
操作正确时需要的提示;
 
错误
场景:系统异常;
当前链接失效,必须终止当前流程;
且用户无法通过修改继续提交,提交修改的已被
删除;保存时发现其执行当前操作的先决业务规则已不满足;

提醒
场景:通常情况下的系统提示信息;
不带有警示作用;<br/>具有提示作用;

警示
场景:由于无法再往下走,产生的提醒、警告之类的提示;
通常情况下的系统警告,由于##操作引发的问题;

第三类:备注,对现有信息的补全和关联,通常出现在页面的底部和尾部。
关联
由于现有的内容所引导相关的解释性内容;

备注
是对当前内容的补充,以完善它的用用意;

第四类:图示,用图例和当前状态的图例来直接引导用户进行相关操作。
流程图
流程图有很强的导向性,告知用户当前步骤和要完成操作的整个流程关系;

引导
引导是指向性的图例,用当前图例来指导用户完成操作;
 

 
 
原文:http://www.alisoftued.com/?p=169

(此图例提供了包含丰富信息的提示,下面的图就省略了)点击放大