设计心理学阅读笔记Design for Everyday Things

这真是一本很老的书了,而且是属于工业设计方面,但其中的一些原则对网页交互设计也是十分有用。并且成书于个人计算机刚普及的时候,其中对计算机有一些非常原始的看法(原始并非指不足,而是排除了现代的某些偏见)。下面是我的读书笔记,纪录了其中很多的原则和规律。

预设用途

一些东西的自然属性可以告诉你应该怎么使用,旋钮是用来旋转的,球是用来踢的
门上横的金属把手是推,竖的把手是拉

原则

1. 提供好的概念模型
2. 可视性
3. 匹配原则
4. 反馈原则

心理模型

是人们通过经验、训练和教导,对自己、他们、环境以及接触到的事物形成的模型。
我们习惯对事物加以解释,这就形成了针对事物作用方式、发生过程和人类行为方式的概念模型,即心理模型。
设计模型是指设计人员所使用的概念模型,用户模型是指用户在与系统交互作用的过程中所形成的概念模型。
设计人员希望用户模型与设计模型一样。

行动的七个阶段

1. 确定目标
2. 确定意图
3. 明确行动内容
4. 执行
5. 感知外部世界状况
6. 解释外部世界状况
7. 评估行动结果

用户脑中的知识虽然不精确,但却知道如何精确操作,原因
1. 信息储存于外部世界
储存在记忆中的信息与外部信息结合决定了我们的行为
2. 无需具备高度精确的知识
3. 存在自然限制条件
4. 存在文化上的限制条件 P56

限制因素

1. 物理结构上的限制因素
2. 语意上的限制因素
3. 文化限制因素
4. 逻辑限制因素
P82

可视性和反馈

将看不见的部位显示出来——针对开关和把手
设计合理的显示装置
如何去设计显示装置
用声音增强可视性
P100
失误slip和错误mistake
日常差错心理学 佛洛依德的“日常生活的病态心理学”
P108

失误种类

1. 撷取性失误(capture errors)
指某个经常做的动作代替了你想要做的动作
2. 描述性失误(description)
对行动意图的内心描述不够精确,正确的动作施加在错误的对象上
3. 数据干扰失误(data-driven)
4. 联想失误(associative activation)
观念和想法产生的联想也会引起失误。不想告诉人的事脱口而出
——佛洛依德对此有专门的研究(BS:佛老真是一个变半夜凉初透态的人)
5. 忘记动作目的失误(loss-of-activation)
原因激发目标的机制已经衰退,说的通俗就是健忘
6. 功能状态失误(mode errors)
多功能物品,某一状态下的操作在其他状态则会产生不同效果
发现失误,首先要获取反馈信息
对动作细化,分解成不同层面
例如开车钥匙,往往是换一个方向,水平,倒着插进去,摇晃车门,踹一脚,换一个车门
最后才发现不是自己的车

人似乎试图从最低层次开始纠正失误
人类思维的一些模式
理性人的假设
记忆理论——联结主义(或叫神经网络理论、神经模型理论、平行分配加工理论)
我们的记忆中有两种事件:一般事件和特殊事件,一般事件发生频率应该是1000倍于特殊,但我们记忆中特殊事件的发生频率并不比一般事件低,我们过分强调了特殊事件

日常活动的结构

P122
宽而深的结构->国际象棋
浅层结构->菜单->极端情况 套餐
窄面结构->菜谱

游戏和非日常活动应具备宽而深的结构
而日常活动,要么属于浅层结构,那么宽度就不重要;要么属于窄面结构,深度便不重要。

井字游戏的决定树

差错

解释差错
对错误进行解释是一个普遍现象。人们对某件事情发生之前和之后的理解有很大差别。
社会压力和错误

与差错相关的设计原则

7. 了解各种导致差错的因素,设计中尽量减少这些因素
8. 操作者可以撤销之前的指令,或者增加那些不能逆转的操作的难度
9. 使操作者能够比较容易的发现并纠正差错
10. 改变对差错的态度。操作者不过是想完成一项任务只是采取的措施不够完美,不要认为操作者是在犯错误。
处理差错
强迫性功能(连锁interlock、内所lockin、外锁lockout)

设计人员两大致命诱惑

悄然滋长的功能主义
陷入误区的外观崇拜

——笔记:关于苹果设计的讨论
这本书写于苹果刚开始的几年,没有迷信没有崇拜,而是详实的记录了对苹果的评价
HIG原来一开始就有,真是惊喜

PDF106/P189-2009.11.20
保证用户能够随时看出哪些是可行的操作

(利用限制因素)
注重产品的可视性,包括系统的概念模型、可供选择的操作和操作的结果
便于用户评估系统的工作状态
在用户意图和所需操作之间、操作与结果之间、可见信息与对系统状态的评估之间建立自然匹配关系

将任务化繁为简的七个原则

1. 应用储存于外部世界和头脑中的知识
2. 简化任务结构
3. 注重可视性,消除执行阶段和评估阶段的鸿沟
4. 建立正确的匹配关系
5. 利用自然和人为的限制性因素
6. 考虑可能出现的人为差错
7. 若无法做到以上各点,就采用标准化

简化任务结构

 不改变任务的结构,提供心理辅助手段
 利用新技术,把原本看不见的部位显示出来,改善反馈机制,增强控制能力
 自动化,但不改变任务的性质
 改变任务的性质

建立正确的匹配关系

操作意图与可能的操作行为之间的关系
操作行为与操作效果之间的关系
系统实际状态与用户通过视觉、听觉和触觉所感知到的系统状态两者间的关系
所感知到的系统状态与用户的需求、意图和期望之间的关系
标准化
作者著书时计算机标准刚起步,如今已经有成熟的标准并且大众已经接受

故意增加操作难度

故意干扰正常的操作活动(删除的确认)
需要几个人共同完成(保险箱或引爆器)
故意把控制器设计的很大很分散,以免被小孩误用
难玩的游戏才有意思

==》把易用性原则反过来使用:

1. 隐藏关键的部位,让用户看不到相关的操作信息
2. 在执行任务阶段利用不自然匹配的关系,使控制器和受控物体之间的关系具有任意性
3. 增加操作的难度
4. 用户需要把握非常精确的操作时机和操作步骤
5. 不提供任何反馈信息
6. 在任务评估阶段利用不自然的匹配关系,使用户难以理解系统所处的状态

看起来简单,用起来容易

两个因素:用户需要多少时间找到相关的控制器(控制器越多时间越长);执行物品功能时的操作难度(控制器越多,执行越容易)
解决:隐藏不需要的控制器

Posted in 交互, 入门 | Tagged | Leave a comment

设计/生活哲学

白鸦:“寂寞,是常态。能做的就是:做事。不管做了之后有没有好处,反正做了就肯定有收获。”

Unix哲学:Do one thing & do it well

Apple哲学:封闭专人比黄花瘦

jQuery:Write less, do more

Nokia:connecting people/科技以人为本

Panasonic:Ideas for life

Kiss原则:keep it simple & stupid

好的设计就是没有设计

Twitter 的哲学 "Nobody and Everybody"

飞利浦:精于心,简于形 (sense and simplicity)

一切生活中的问题都可以变成数学问题,一切数学问题都可以转化为几何问题,一切几何问题都可以转化为代数问题——by某个数学老师

Posted in 设计之外 | Tagged | Leave a comment

移动界面中的文字问题

这是我最近在写的一份报告的一部分。这里用数据研究了应该如何确定移动界面上的文字大小,以及讨论了几款移动界面上的字体,尤其是中文字体。

1. 大小

首先看一些屏幕的数据

设备

尺寸

分辨率

DPI/PPI

点距

12.1寸笔记

12.1

1280×800

124.74ppi

0.204mm

13.3

13.3

1280×800

113.49ppi

0.224mm

22寸显示器

22

1680×1050

90.05ppi

0.282mm

N97

3.5

640×360

209.80ppi

0.121mm

iPod Touch

3.5

480×320

164.83ppi

0.148mm

M8

3.4

720×480

254.51ppi

0.100mm

Maemo

3.5

800×480

266.56ppi

0.095mm

*ppi:即每英寸像素数Pixel Per Inch

举例,以NOKIA N97/N900/iPod/M8/WINDOWS XP都有的界面时间来计算

设备

点距

字高(设定高度)

大小

N97Symbian

0.121

12px(20px)

1.452mm

N900Maemo 5

0.095

20px(30px)

1.90mm

iPod Touch3iPhone OS

0.148

10px(Helvetica b 14px)

1.48mm

M8

0.100

15px

1.50mm

Windows@22

0.282

8px(Arial 11px)

2.256mm

通过上表可见:

  • 各个设备即使屏幕不同,其显示相同性质的文字实际尺寸是接近的
  • 相同性质的文字,因为点距和观察距离的不同,字体大小不同(显示屏与手机屏幕阅读距离大致相差一倍)
  • 移动设备字号大小是普通屏幕的2倍左右。

n97_sms_vertical

一般来说,浏览器默认1em=16px0.875 em\1 em\1.125em即为14\16\18px

1磅≈0.353毫米

1英寸=72=25.4mm

9pt=3.177mm 12pt=4.236mm,这是印刷业常用的尺寸,点(pt)是一个与像素无关,而只与长度有关的字体大小单位。与中文常用的关系为

  • “小五”=9pt
  • “五”=10.5pt
  • “小四”=12pt
  • “四”=14pt

而在网页中(22寸显示器下),中文最低使用12px=3.384mm最常使用14px=3.948mm。但是屏幕阅读始终比不上纸质印刷品,因为屏幕的dpi过低。网页设计中常常使用增大行距和字号来提高浏览体验。在12/14/16px下,中文字符不适合开启边缘抗锯齿(实际常用的宋体在20px下都不适合抗锯齿),而单纯增大字号则会让人看到带有锋利锯齿的笔画。

在手机屏幕上,dpi比电脑屏幕大大提高了,因此移动界面的浏览体验要比电脑屏幕提高不少。一个字符可以有更多像素来显示(超过18像素),边缘抗锯齿AntiAlias对文字显示效果的提升比桌面电脑要明显。它带来更丰富的层次以及柔和的边缘。

举例来说,显示9pt大小的文字(相当于屏幕上经常使用12px~14px),而在N97上是3.163mm/0.121px/mm=26.26px,取最近的整数值也就是26px,这正好是N97上短信文字的字号(实际为25px但奇数字号中文显示会有问题,所以网页设计中通常会用偶数字号的中文)。

fonts_sms_zoom

手持设备的屏幕阅读距离比笔记本和台式机更近,因此实际需要的文字大小并不需要更大。但为了方便在移动中阅读,推荐使用较大的字体。

简单的说可以看成文字大小与阅读距离是线性关系。也就是说,同样大小的文字,距离二尺时看到的只有距离一尺时的一半大小。定量来说:由于文字大小h4~5mm)相对人眼到文字的距离d30~60cm)非常小,可近似认为视角θ正比于h,并与d成反比(θ≈tgθ=h/d)。

因此在实际中,移动界面的字体并不是简单的把桌面屏幕的设置按比例换算下来。我们需要根据人与设备的距离d来调整字号的设置。

当人在移动中使用手机界面时,应该使用交大的字号,这样文字的辨识率会提高很高。实际中,我在移动中使用N97进行短信阅读收发没有问题。

但当静止下来时,你可以更近距离和仔细的观察屏幕,因此在静止状态实际你可以使用小一些的字号让屏幕呈现更多内容提高你的阅读效率。因此实际上N97短信文字默认大小是21px而大字号才是25px。其设计逻辑是考虑大部分人会在稳定状态使用短信功能。不过国情告诉我们短信功能对中国人而言是不分场合的。

m8 sms text vertical

从网上找到M8的界面截图进行分析,它的字号设置基本和N97是一致的。不过考虑到它的分辨率更高,是不是在M8上的字会比较小呢?

答案是,两者是同样大小的。

文字设定的字号和文字的实际大小是不一致的。例如Sans MT SC 936_S60C22px字号下,中文实测高度21px,英文实测高度18px(对应关系可见下表)。

以像素px为高度单位,字体为Sans MT SC 936_S60C

设定字号

中文字符实际高度

英文高度(x-height

数字实际高度

11

(不可用)

96

7

12

11

107

8

13

11(不可用)

107

8

14

13

127

9

15

14

127

9

16

16

148

10

17

16

159

11

18

17(开启抗锯齿)

15(9)(系统开启抗锯齿)

11

19

18/不消除锯齿17

1610

12

20

19

1710

12

21

20/19

1811

13

22

21/20

1811

14

23

22/20

1912

15

24

23/22

2112

15

25

23

2113

16

26

24

2213

16

27

25

2314

17

28

26/25

2414

18

29

27/26

2515

19

30

28/27

2516

20

32

29/30

2717

21

更换字体后对比,在采用“微软雅黑”字体测试的情况下,开启抗锯齿,设定字号和中文字符实际高度是一致的。在苹果的字体中也是字号和文字高度一致。

N97中,短信文字实际高度为23px,换算到M8上,应该是

H=23px*0.121mm/px/0.100mm/px27px

而雅黑字体的实际高度也为27px,因此在N9725px文字与M827px文字大小是一致的。


iPod Touch上,为何采用16px显示文字也是同样的道理。转换后与N9720px文字是同样大小。

ipod_stayby_vertical

Touch没有采用更大的文字,考虑的原因有:

  1. Touch通常使用状态不是你在大街上行走的时候
  2. 节省空间(Touch分辨率在这些中是最低的)
  3. 苹果在字体上的技术优势(独特的边缘处理)
  4. 美观(过大的字体实在和精致界面格格不入)

但毕竟中文在20px下使用抗锯齿,尤其是16px下使用抗锯齿对文字的清晰度有很大影响,在一些地方iPod显示中文不是非常良好。

结论:

根据设备的分辨率来计算需要的字号并根据实际使用状态来调整

2. 字体

NOKIA N97默认的字体为Sans MT SC 936_S60C。这是一款Sans字体,意味着字体没有截线,笔画粗细几乎一样。这款字体专门为中文抗锯齿做了优化,尤其是在小字号下的抗锯齿笔画清晰度有了很大的提高。在抗锯齿开启的情况下,这款字体保证了每一个字号下的细笔画总呈现出应有的字体颜色,而不是因为抗锯齿被减弱的颜色。

系统

中文字体

英文字体

类型

Symbian

Sans MT SC 936_S60C

黑体

iPhone OS

STheiti(华文细黑)

Helvetica

黑体

M8

雅黑

黑体

Android

Droid Sans Fallback

黑体

新的N900Maemo5系统)使用了一款类似Sans MT SC 936_S60C字体,不过有两个改进:1.英文带有类似Slab serif的衬线,而原来是无衬线;

2.优化了中文在20px下的显示清晰度,接近Droid Sans Fallback效果。

由于Droid Sans Fallback是一款开源字体并且包含对中文的支持,针对手机设备的优化设计(文件尺寸小,小字号中文显示优异),被众多开源平台采用。

Sans serif字体特点是笔画粗细一致,没有衬线和装饰,十分简洁,易于识别。但缺点是美观性不足(N900修改字体与此有关,N900的设计哲学与N97不同)。

在电脑上大量使用的宋体由于笔画有粗细,其最细的笔画要在32px以上时才会成为清晰的白色(开启抗锯齿)。

与这款字体同一类型的幼圆字体,在同字号下字体实际高度大(意味着占用更大屏幕),并且现实效果也并不及这款字体。

微软最新的雅黑字体(被M8采用),能够达到十分相近的效果。但在局部笔画、英文和数字上NOKIA自带的字体仍有优势。

fonts_compare

四款字体的对比

可以看出NOKIA内置中文字体Sans MT SC 936_S60C显示效果较好。并且24px字号的几种字体同微软雅黑22px字号文字实际大小是一样的。

fonts_compare_zoom

字体列表

绝大部分的英文经典字体设备都内置了

例如iPhone自带了以下字体

  1. Hiragino Kaku Gothic ProN W3
  2. HiraKakuProN-W3
  3. Courier
  4. Arial
  5. STHeiti TC
  6. AppleGothic
  7. Courier New
  8. Zapfino
  9. Hiragino Kaku Gothic ProN W6
  10. Arial Unicode MS
  11. STHeiti SC
  12. American Typewriter
  13. Helvetica
  14. Marker Felt
  15. Helvetica Neue
  16. DB LCD Temp
  17. Verdana
  18. Times New Roman
  19. Georgia
  20. STHeiti J
  21. Arial Rounded MT Bold
  22. Trebuchet MS
  23. STHeiti K

结论:

  1. desktop平台做移动界面设计时需要安装设备字体
  2. 使用设备自带的字体在中文显示上比较有优势
  3. 英文字体通常有多种默认的选择,推荐使用Helvetica而不是Arial,英文显示基本没有问题
  4. 图片中使用文字需要考虑小屏幕上的显示问题,尤其是小字号的时候,推荐安装Droid Sans来制作图片,雅黑是一种可行的替代方案
Posted in 设计 | Tagged , , , , , , , | Leave a comment

DIV+CSS布局入门

bookface

其实更简单的说是网页设计入门,基本不涉及DIV+CSS内容。
从大体上介绍了网页制作的内容,包括所谓的前端在网站中的位置,HTML前端工作的概况,网页从设计到制作到兼容性测试等等的步骤。

内容十分的基础和入门,不推荐高手和有基础的人看,仅针对刚上网络班对网页制作一点都没有基础的孩子

这个PPT在课上演讲的时候我花了2个多小时,因为几乎是从头讲到目前的技术前沿(比如制作CSS spirit)

bookface2

对于没有完整参与过一个网页制作全程的孩子,我还简单罗列了一下我的工作流程,并且,PPT的主要内容也是根据这个流程来讲述的。

其实就这些流程中的任何一章,都可以开个小专题并且当做研究生课题来研究。

bookface3

OK~如果上面的图对你有吸引力,那么请下载div_css入门

附PPT里面范例文件压缩包

PS:我写的PPT有小缺点,因为是配合自己口述的,所以实际单看PPT似乎没有什么实际内容。我以后会改进~

Posted in 设计 | Leave a comment

最近小学期

一直在忙学校的小学期和自己网站的更新。

学院小学期比较郁闷,就是做网页,做设计,讲课很不靠谱,越来越让我伤心了。原本打算写一篇文章来重新认识一下网络版,大致写了一个提纲,继续写下去就发难了:是啊你自己清楚应该怎么走这个专业应该怎么学,但你应该告诉别人怎么学嘛?

于是郁闷了,不写了。

混完小学期吧。那就继续做网页,于是趁有时间就学点东西吧。

aviary-picture-2

因为这是一个征集函,所以参考了杂志的排版模式,但是那个征集函内容实在太多了= =虽然从版面上看还不错,但是实际应用中,这种杂志的三栏设计不方便阅读,因为你一栏文字读完以后要返回上方去读下一栏。折中的办法是插入锚点,但毕竟不是最好的,还是要在内容上做一下限制。

做HTML的时候用了blueprint的CSS框架,他的grid还是挺好用的。950px/24格的布局也比较常用。可能会在接下来写一个小教程之类的,给同学和初手学习如何使用JS/CSS框架进行开发。现在使用框架是一个潮流,连PHP都有框架了,可以节省不少工作,当然也有弊端。

最后是进行XHTML1.0 strict验证,自己对标准的了解还是有一点偏差,第一次16个错误= =花了4次才解决完所有问题。这次主要的问题是p标签和ul标签的包含问题,原来p里面是不能包含ul的啊....掩面....

去淘宝UED看到了最新的网络广告互动体验设计,下学期系主任也要上网络广告专业课,但是从没想过她能讲的比淘宝这个好,可能一学期学的内容都不及UED的一章。(PS:用迅雷批量下载了下来...嘿嘿)

原本要接一个师姐的网站单子,但是内容比较麻烦而且是整个系统的制作,给的钱也比较少,想到月底要回去了,最后找个理由推掉了。

网站在22号(日食,老YOUNG100.NET暗淡了,不过新网站也重生了)更新并启用了新域名hi0512.net,程序也换到了康盛的UC/UCH/DZ。我最终也受不了Molyx而转投DZ了,唉。

用下来虽然那个后台很变半夜凉初透态很不好用,但是DZ毕竟这么几年做BBS下来,该有的功能都有了,并且有一套很广泛的系统。

月底回去,给新版主开个会,然后布置宣传任务。新的网站,又要做全新的一套LOGO/BANNER/WATERMARK等,还要做全新的一套宣传卡片。

哦,27号老婆阴历生日。喵~~老婆生日快乐。

Posted in 设计 | Tagged , , | Leave a comment

网络班就是个玩笑

今天看完整个07动院的作品展,感觉07网络班就是个玩笑——

我们又要学网页设计/制作,还有学动画原理、编程flash、游戏,下学期还有数字短片

但是我们的动画不能和动画专业比,flash游戏不能和游戏专业比,短片也不能和影视比

最可怕的是教网页的老师说:做网页是你们万一找不到工作的糊口的——网络专业不去做网站难道去拍电影?

更可怕的是:网络在一个学期学了整整三个专业的课程

另外罗嗦一句就是,其他几个班长都会在开场前把所有作品看一遍做准备,网络班长您至于什么都不看然后上台的时候说“让我先看一下”“其实我也没看过没弄懂”这样的话么?

回顾一下大一大二,我觉得两年时间学的内容没有我高中一年自学的多——至少当时自学了PHP/MYSQL/HTML/CSS/JS。在这两年中,大量时间被浪费在做无关的美术作业和玩游戏——为了发泄上课带来的郁闷情绪。

网络班在定位上我觉得就犯了一个错误,学校把网络多媒体当做一个设计艺术类专业,由此导致整个专业的设置都偏向美术设计——类似广告学院的艺术设计——只是比他们多一些代码而已。然而在设计上我们没法和纯美术生的动画、艺设相比,在代码上更没办法和计算机学院这样的专业相比。

我想说,艺术和技术相结合这条方向是对的。在网络上确实需要一批这样的人才来沟通美工和程序员;这样也可以在网站规模小的时候能一人担任多职。

但在专业课程设置上,却一边倒的倾向了美术,程序、脚本、代码课程如同扫盲班。

而在传播概论、认知心理学、交互设计等方面,完全没有专业课程。

面对网络/IT这样一个日新月异的领域,教材或者课程却完全没有跟进,5月的AS1.0和网页宽度标准以及关于设计趋势,让我彻底无语了。

“网页中出现很大的字,这样设计很难看”——请不要说这样的话了——韩国的精细小字设计潮流已经过去了。

我想学网格/jQuery/AS3/正则/交互设计...

就到这里,接下来要痛定思痛,认认真真自学了。

Posted in 设计 | Tagged | Leave a comment

BLOG快开张了

7月3号申请的开通。

这几天在熟悉wordpress模板和插件还有YO2的一些东西。

没有选国内主机因为不想弄ICP备案,也不想弄国外的主机还要防GFW,于是就用用国内的WP服务提供商的服务试试。

不用自己弄域名不用弄空间不用管数据库和安全一键安装插件——总之让我省心一些。

风格用的是系统内的选了一款——不过刚安装就开始修改了,原版的风格不适合中文阅读,而且版式也有不足。

但发现用下来还是有局限的:

毕竟集成在YO2的大系统内,所以有一些YO2提供的功能不知道应该怎么进行修改。

YO2把时间格式化成中文了,所以the_time("M")还是the_time("F")出来的始终都是中文,有点小郁闷,不过没关系。

这个BLOG的速度实在不怎样,而且刷新快了会出现503错误——这个很致命!

不知道怎么搞的,在文章中插入图片,文字总会跟在图片后面包围,清除浮动都没用。这个CSS以后慢慢研究。

还有一些不知道是什么插件,目前还没看到是怎么装的。

总之慢慢来,WP也是要慢慢研究透的,说不定以后也要靠他吃饭。

Posted in 设计 | Tagged , | Leave a comment

制作漂亮的双引号引用标志

效果见这里

CSS代码,图片在这里
open_quote
close_quote

[code=css]
/*+++++++++++++++for quote++++++++++++++++++++*/
blockquote p {
padding-left: 18px;
padding-right: 10px;
padding-bottom: 6px;
text-indent: -18px;
background: url(images/close-quote.gif) no-repeat right bottom;
}
blockquote p:first-letter {
background: url(images/open-quote.gif) no-repeat left top;
padding-left: 18px;
padding-top: 10px;
font:32px 'Microsoft YaHei',"黑体",Georgia,Times,serif;
}
blockquote p ~ p:first-letter {
background: none;
font: normal 14px;
}
blockquote {
width: 400px;
color: #777;
padding: 6px 0px 10px 10px;
border-left:8px solid #ccc
}
/*+++++++++++++++for quote END++++++++++++++++++++*/
[/code]
第一部分的padding-left是为了让引用区域和左边的灰线保持距离;
padding-right和padding-bottom是为了末尾的引号保留空间;

第二部分改进了字体为黑体和文字大小;

第三部分改变不大;

第四部分增加一条左侧的灰线,直观的显示出区域的大小。
你也可以针对wordpress的内容对上面的代码进行补充,例如我这里的为上面的代码增加了额外的样式
[code=css]
.PostContent blockquote {background: #eaf7ff;width:480px;margin-left:25px;}
.PostContent blockquote p { margin: 0px; line-height: 24px;color:#993366;}
.PostContent blockquote li { padding: 2px 0px 2px 15px; list-style-type: none; font-size: 12px; line-height: 15px;}
.PostContent blockquote a { color:#336699;}
.PostContent blockquote a:visited { color:#336699;}
.PostContent blockquote a:hover { color:#000033;}
[/code]

这是引用原来的解释

第一部分用于定义引用文字的一些基本信息(字体,宽度,左留空等);
第二部分使用p:first-letter,定义引用文字首字的样式,左上方有“左引号”图片做背景、字体样式为斜体等;
第三部分的p ~ p:first-letter是什么意思呢?这段代码用来保证非第一段文字的首字母并不应用第二部分代码定义的样式,假如引用文字中有两个以上段落也不至于出现多个“左引号”,可惜的是IE6不支持此段代码 -__-||

Posted in 设计 | Tagged , , | Leave a comment

在JSP中使用UTF-8中文

这篇文章实际是从大二末jsp作业的经验总结而来。

虽然JSP课程教的很烂大部分人选择修改一套系统然后改个模板交待任务,我最终还是选择从底层开始搭起一个简单的twitter系统。

做的过程中最主要的问题就是面对java中的字符集和中文乱码问题了,以下是经验总结。

=======================================================
乱码原因分析
=======================================================

在java(jsp)中默认的字符集是ISO-8859-1,这是一个8位的ASCII字符集。java在默认情况下所有的字符都是以ISO-8859-1来处理。众所周知中文至少是用双字节来编码(GB2312或者GBK),而在UTF-8中,字符可能是双字节,单字节或者3字节,所以在读取的时候就会出现乱码的情况,不能简单的在读取以后进行强制编码转换(即使转换部分字符还是乱码)。
[code=java]String str=new String(str.getBytes("iso-8859-1"),"GB2312");[/code]
简单的编码转换只对GB有效
=========================================
解决方法
=========================================
确保字符集的一致性,否则问题会很多。我过去在PHP开发中一致保存为UTF-8,可以一了百了解决所有语言的问题,例如日语、阿拉伯语等等。
UTF-8虽然在体积上不具有优势,但是在国际化上非常有优势。

以下是你需要保持编码一致性的地方:

  1. 数据库字符集,例如mysql
  2. 文本文件字符集,例如html模板或者缓存文件
    [code=xml][/code]
  3. java文件本身,应该在IDE里面设置成UTF-8而不是默认的GBK
  4. JSP文件,应该使用
    [code=java][/code]
  5. JSP文件在使用request的时候也要指定字符集

    [code=java]request.setCharacterEncoding("UTF-8");[/code]

  6. 连接MYSQL时应该注明字符集
    [code=java]
    String url="jdbc:mysql://"
    +Config.MYSQL_IP+":"
    +Config.MYSQL_PORT+"/"
    +Config.MYSQL_DB
    +"?useUnicode=true&characterEncoding=utf-8";[/code]
  7. 读取文本文件时需要指定字符集
    [code=java]new FileInputStream(this.filePath), "UTF8"));[/code]

进行以上设置以后,就无需再用new String(str.getBytes(“iso-8859-1”),"UTF-8")强制转码了。

另外需要注意的是在ajax中文传值问题
因为我的项目是twitter比较简单(这也是我觉得我能在3个星期课余时间独立完成的原因),所以我选择用GET方法通过AJAX来发表/修改/删除内容。
由于使用UTF-8方法,在把中文内容加到URL前,请使用两次escape()方法对中文进行转码。(以下代码使用了jQuery)
[code=jscript]var text=$("#msgcontent").val();
text=escape(escape(text));
var url="ajax.jsp?do=addblog&text="+text+"&s="+session;
[/code]
然后在jsp中对该变量进行unescape()转码返回中文,附件中有escape_java对应javascript中escape()和unescape()的源文件
而且只要一次unescape()就能解出来。
[code=java]
String blogtext=request.getParameter("text");
blogtext=twi.getUnEscape(blogtext);
[/code]

Posted in 工作 | Tagged , , , , , | 2 Comments

Hello!World!

Hello, WordPress!

Posted in 设计 | Leave a comment