测试驱动之于网页设计开发

这是一篇译文,其中涉及了不少比较专业的概念,我将用一系列文章来介绍这些概念,这些文章对于网页设计进行了更加深入的探讨,也许在我们看来有些学究气了,但是通过这种探讨,我们从中应该看到一些好的方法论和更多的用户体验关怀。 
Progressive Enhancement(逐步增强)开发模式正逐步成为基于标准设计的最佳实践。从简洁,语义化的HTML标记开始,通过Javascript和CSS层层渐进式增强,我们试图为任何受众创建可用的体验,对于那些功能不那么强大的设备和浏览器能获得一个相对简单但是功能完整的用户体验,而其他那些功能齐备的则将获得剩下的附加特性和体验。
这是就是PE(Progressive Enhancement 以下缩写为PE)的基本理论。但是在实践过程中,这些增强仍然被推送给了绝大多数设备,其中包括大量不支持这些特性的对象,比如较低版本的浏览器或者是功能受限的移动客户端。这些设备一开始的确获得简单但功能完整的页面,但随后被“增强”到了乱糟糟的页面。这显然是和PE理论背道而驰的。
那我们应该怎么做增强以确保所有的设备和浏览器获得正确的效果呢?测试,这时候我们需要的是通过逐级测试来确保这点。
兼容性测试
不久之前,我们发现可以使用很简单的Javascript代码来测试目标设备对于CSS的支持情况。让我们从一个很简单的盒模型测试开始,我们插入一个对象到当前Document中,然后设置一些样式属性,然后通过Javascript来校验是否被正确支持了。

function boxmodel(){
var newDiv = document.createElement(’div’);
document.body.appendChild(newDiv);
newDiv.style.width = ‘20px’;
newDiv.style.padding = ‘10px’;
  var divWidth = newDiv.offsetWidth;
  document.body.removeChild(newDiv);
  return divWidth == 40;
}
通过上面的TestCase,我们能很快的检查目标设备是否正确支持盒模型,然后我们也能采取对应的增强方式。
有了上面的这个主意,我们能类似的写出如下测试用例:

float
clear
position
overflow
line-height

当然仅通过CSS测试并不能覆盖到所有情况,幸运的是,我们还能通过Javascript测试来做其他兼容性测试。(译注,这可能是大家比较熟悉的浏览器检测了)。

document.createElement()
document.getElementById()
xmlHttpRequest()
window.onresize()
window.print()

通过上述测试,我们可以知道是否可以正确显示客户的应用。
我和我在Filament Group的同事开发了testUserDevice.js,来完整上述所有的测试。

利用这些测试结果
整合testUserDevice.js到一个页面上是相当简单的,讲JS文件包含进来,然后调用testUserDevice.init()方法就可以了。
为了更好的阐述这些概念,我们来看一个具体的例子,这是一个有一定复杂度的表单页面,让我们从最基本的HTML开始。
DEMO1
=== CSS增强
当目标设备通过了我们的测试代码,会对页面进行一系列的增强,默认情况下,会进行下列DOM更新:

样式Class enhanced 被加到[BODY]元素上。
 (title=”enhanced”) 可选的样式表文件被启用。
 (title=”not_enhanced”) 与之相反的,所有这些非增强样式表文件被禁用。

这样的变化给你提供好几个契机去做层进式的增强,比如BODY标记上的样式增强。来看下例子:

body div.example { 
margin: 1em 0;
}
如果用户的浏览器通过了测试,我们可以使用float布局来实现水平排列。

body.enhanced div.example { 
float: left; 
[…]

SmashingMagazine 十月壁纸赏

十月壁纸赏,每个月换换壁纸,也换换心情。有道是加班无岁月,但是日子还是得知道的,要不一会哪天发饷都不记得了。

森林中的精灵,你知道会幻化成什么样子,是你心中哪位女神的样子。

 都说在摩天轮上能看到幸福,也许说的是幸福就在那一圈圈的轮回之中吧。

原来奔月的不只有嫦娥,还有徐静蕾

你看到了什么?

最聪明的海中精灵吧。
 想要下载这些漂亮的壁纸:http://www.smashingmagazine.com/2008/09/29/desktop-wallpaper-calendar-october-2008/

Microsoft IE8 CSS3扩展支持

众所周知,所有的浏览器都有一些关于CSS功能的额外扩展,例如(-ms-interpolation-mode),这些通常来自于那些未在CSS标准中明确完整的定义的特性和功能或者是在标准中已经完整定义但浏览器只是部分支持。CSS2.1标准中规定,以上这些不完全合乎标准的特性都必须使用一个供应商前缀(Vendor Prefix ‘-ms-’ for Microsoft, ‘-moz-’ for Mozilla, ‘-o-’ for Opera)。
下面介绍一下IE8下的这些额外扩展,当然我们的目的不是把那些IE Only的特性带入下一代的页面中,而是能够在浏览器支持的前提下,运用一些属于CSS3的特性,丰富一下创作思路。

Property
Type
W3C Status

-ms-accelerator
Extension

-ms-background-position-x
CSS3
Working Draft

-ms-background-position-y
CSS3
Working Draft

-ms-behavior
Extension

-ms-block-progression
CSS3
Editor’s Draft

-ms-filter
Extension

-ms-ime-mode
Extension

-ms-layout-grid
CSS3
Editor’s Draft

-ms-layout-grid-char
CSS3
Editor’s Draft

-ms-layout-grid-line
CSS3
Editor’s Draft

-ms-layout-grid-mode
CSS3
Editor’s Draft

-ms-layout-grid-type
CSS3
Editor’s Draft

-ms-line-break
CSS3
Working Draft

-ms-line-grid-mode
CSS3
Editor’s Draft

-ms-interpolation-mode
Extension

-ms-overflow-x
CSS3
Working Draft

-ms-overflow-y
CSS3
Working Draft

-ms-scrollbar-3dlight-color
Extension

-ms-scrollbar-arrow-color
Extension

-ms-scrollbar-base-color
Extension

-ms-scrollbar-darkshadow-color
Extension

-ms-scrollbar-face-color
Extension

-ms-scrollbar-highlight-color
Extension

-ms-scrollbar-shadow-color
Extension

-ms-scrollbar-track-color
Extension

-ms-text-align-last
CSS3
Working Draft

-ms-text-autospace
CSS3
Working Draft

-ms-text-justify
CSS3
Working Draft

-ms-text-kashida-space
CSS3
Working Draft

-ms-text-overflow
CSS3
Working Draft

-ms-text-underline-position
Extension

-ms-word-break
CSS3
Working Draft

-ms-word-wrap
CSS3
Working Draft

-ms-writing-mode
CSS3
Editor’s Draft

-ms-zoom
Extension

在IE7中,没有使用这样的前缀,所以如果用户在IE8中选择兼容模式的话,这些带有前缀的属性将不被识别。不过在IE8模式中,为了向下兼容,将接受带前缀和不带前缀两种格式。
有一个要注意的地方:
#transparentDiv {
       -ms-filter: “progid:DXImageTransform.Microsoft.Alpha(Opacity=50)”;
       filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
       opacity: .5;
}
原来的filter格式在标准中是不合法的,所以为了能够在ie7和ie8中都能达到该效果,请参考上述写法。(向下兼容真是沉重的包袱啊)
原文地址: http://blogs.msdn.com/ie/archive/2008/09/08/microsoft-css-vendor-extensions.aspx

20个帮助你更好的掌握CSS的网站

原文地址:http://sixrevisions.com/css/20_websites_learn_master_css 
相信不少人,哪怕是职业的网页设计师有的时候也不免会觉得CSS有那么点玄妙,有很多小trick并不是那么容易一下子掌握的。
三人行必有我师焉,那就从一些前辈那里学点东西吧,20个CSS和网页设计相关领域的站点,希望能给大家带来一些帮助。
1. A List Apart CSS Topics
老牌CSS站点,从1999年开始一直致力于整理收集面向标准网页开发的优秀文章。 

2. CSS Help Pile
收集整理了大量的CSS相关资源,而且归档非常清晰,查询非常方便。

3. CSS Basics
通过一系列教程讲述了CSS的基本概念和基本原理。非常不错的一篇入门教程,我当年也获益良多。

4. Holy CSS Zeldman!
CSS相关资源站点,不是《网站重构》的那个Zeldman,不要搞错咯。

5. Eric Meyer: CSS
一位有名的CSS作者的blog,值得一看。

6. 456 Berea Street – CSS category
很流行的CSS站点展示,这类的网站有非常多,多看多收获。激发一下创作灵感。

7. /* Position Is Everything */
网页很多时候困惑和苦恼都来自于Position问题,那让我们专门来看看这类问题吧。

8. HTML Dog CSS Tutorials
是不是想起了上个世界有个老派的html编辑器,这里有着适应不同程度读者的教程。

9. Learn CSS Positioning in Ten Steps
继续深入学习Position,将学习进行到底。

10. Andy Budd CSS/Web Standards Links
Andy大大的网站,如果不知道这位大大,可以看一下《CSS Mastery》这本书,相当不错的一本好书。

11. W3CSchools CSS Tutorial
权威学校来了,科班教育。不过有点乏味,我是不怎么喜欢看。

12. css Zen Garden
我最爱的禅意花园来了,有非常多很梦幻的设计在这里。细细读一下吧,这本书国内去年也出了中文版了。

13. CSS at MaxDesign

14. CSSeasy.com
提倡从经验中学习CSS,用更加现代的方式去学习理解CSS。

15. CSS-Discuss
讨论社区,如果E文不错的话,可以去学习交流一番。

16. […]

一组免费的(FREE)的超炫WordPress Theme

Wordpress的用户肯定都有收集模板的经历,这也是wordpress一个非常吸引人的地方。SmashingMagazine汇聚了很多非常酷而且免费的模板,大家有兴趣可以下来试试看。 
1. Notepad Chaos

 一款很绚丽的模板,非常适合比较时尚的个人blog使用,或者是给设计师类工作的用户使用,真的是非常好看,抽时间我想将其改成中文版的,让我眼前一亮的作品。
Preview (0.4 Mb)
Download the theme (.zip-package, 0.5 Mb)
Download PSD-sources (.zip-package, 5 Mb)
http://www.smashingmagazine.com/2008/08/20/notepad-chaos-a-free-wordpress-theme/
2. Infinity (来自中国的无限遐想) 

Preview (0.56 Mb)
Download the theme (.zip-package, 2 Mb)
Download PSD-sources (.zip-package, 7 Mb)
http://www.smashingmagazine.com/2008/08/08/infinity-a-free-wordpress-theme/
作者是个中国人,但是作品的视觉张力却有着很强的感觉。
3. Fervens

设计师的一系列作品都让人心动,心动不如马上行动吧。
http://wp-themes.designdisease.com/testrun/
4. Fun Theme

Preview (0.56 Mb)
Download the theme (.zip-package, 2.2 Mb)
Download PSD and EPS (.zip-package, 5.1 Mb)

七月SmashingMagazine壁纸赏

SmashingMagazine的每月壁纸一直还是很让人心动的,可惜啊,也许现在大家的显示器都是宽屏的了,我们这些用普屏的,而且还是奇怪分辨率普屏的人就比较吃亏了。
 预览:

更多精美墙纸:http://www.smashingmagazine.com/2008/06/30/desktop-wallpaper-calendar-july-2008/