浏览:6422008-04-19 08:21   来自丁学      :

http://www.cnblogs.com/dingxue/archive/2008/04/19/1160760.html

拒绝图片,拒绝彩色,全站模板中只使用#333/#666/#999/#ccc/#ddd/#f6f6f6六种颜色,简单生活!

拒绝代码垃圾,拒绝CSS hack,CSS文件不到3K,给浏览器最快的解析体验!

可惜啊,MS不太好看,这就是天分的问题吧,我不是色盲,却胜似色盲,而且就算是色盲,这种颜色也应该没有问题,难道这世界上还有黑白色盲?

这只是个半成品,只在IE7和FF2下测试通过,而且个别我从未用过的页面可能给忘掉了,还而且这个模板有些地方不太完善,博客园开发团队的同志们可以去上面的链接去看看我提的问题,小组不适合写很多东西,所以 都写到了blog里

楼主
  3周前   棕熊      :
这里提几点问题:
1. 浏览器的解析速度与css无关,而与html的复杂程度直接相关。对css的渲染你可以认为是常数级的。即使你css文件很小,甚至不用css,浏览器还是会渲染默认样式。与默认样式表相比,浏览器渲染creator制定10条样式规则和制定1000条样式规则造成的时间差可以忽略不计。只要浏览器支持css, 总是会产生解析的花销。而且,就算产生了解析的花销,这种花销和网络传输速度相比完全可以忽略不计
2. 比较因为css和图片造成用户需要发更多请求,并且下载更多文件的情况。就拿你blog的首页和我blog的首页,在cache enabled情况,电信512kbps宽带下的加载行为:
dingxue.cnblogs.com: 13 requests, 31k, cache之前和cache之后加载时间基本维持在1秒左右,被cache的大小为12k
ruxpinsp1.cnblogs.com: 44 request, 705k, cache之前需要5~10秒加载,cache后加载时间维持在3秒左右。被cache的大小为690k
比较一下,在cache了文件之后,加载时间的差别只有两秒不到而已。两秒种能做什么呢?人完成一次呼吸大约需要5秒,换句话说,时间差别也是之吸了半口气之间的事情。即便在cache前,最多10秒的加载时间也是一般用户可以接受的。况且一个网页并不是加载完之后才会显示,而是随时加载,随时显示的
3. 这个其实是最主要的问题,客户端的一切开发,都应该是针对用户开发,而不是针对浏览器开发。一个网页最终目的是给用户看而不是给浏览器看。所以正确的思路是先做一个大家想看的东西,然后再在针对不同的浏览器对这个东西进行优化。针对浏览器开发多少有点本末倒置。

不过既然是一种风格,自然有风格存在的价值。所以对你的这个skin提几点意见。你这个skin最大的缺点是重点不够突出,比如标题,链接,都没有得到应有的强调,所以虽然是黑白的,但看上去还是有点乱糟糟。你可以这样改进:
1. 加大字体大小的反差:比如blog的大标题,完全可以考虑用20px+的字体,blog entry 的标题和正文字体也可以放大
2. 多使用颜色层次:比如正文可以考虑用#666, 链接可以用#333,标题可以用#000——这些颜色只是备选方案,事实上,如果不用等差数列的颜色,加入一些viberation 更好,比如,你可以试试看用#616161代替#666
3. 用边框和背景色对blog的功能合理分块,比如side bar 的每个栏目之间,blog entry 的标题等等
4. 合理缩进和留白,这个主要是针对你的正文

说了这么多废话,无非也是希望你的样式能更加好看,不要介意阿
回复  1楼 回到顶楼 
  3周前   Hafeyang      :
我个人喜欢这种风格 灰色是 万能色 看着然人很舒服 。不过看久了有些也有写压抑 。

还有 ,简单。 简单很好 。
回复  2楼 回到顶楼 
  3周前   JackLee      :

简单没有什么不好,个人也比较喜欢朴素一点的东西.
回复  3楼 回到顶楼 
  3周前   丁学      :
@棕熊
谢谢你下面的那些建议,等有时间我再改改,呵呵

不过对于上面的那些,我不能完全赞同:
1、我始终认为浏览器的解析速度与CSS是有关系的,蹩脚的CSS肯定会拿页面的展现速度受到影响,大量的使用CSS至少可以引起浏览器内存占用的增加,虽然影响会很小,但举手之劳,能做的还是应该 做到。另外,前两天刚帮一朋友解决一个由于CSS而造成的IE6内核浏览器crash的问题,问题虽然出在IE6,但是就算理论上CSS不对解析速度造成影响,但解析最终由浏览器执行,避免由于浏览器自身问题造成的用户 体验不好,也是我们应该做的。

2、对于网络开销,其实大部分问题都 在request上,所以减少request是最有效的,不过这个好像已经没有什么可以做的了,只能保证在CSS中不使用背景图和一些修饰性的图片,至于把本来就有的三个小图标给display:none;了,纯粹只是为了搞笑,哈哈。虽然像我这样故意禁止浏览器cache的人非常非常少(也没办法完全禁止,可以禁止一大部分),但cache会加重浏览器工作量,内存和CPU的使用都会高一些,当页面打开多的时候会比较明显。而且就算是cache后,你也测出了2s的差别,2s不是主要问题,主要问题是你的加载时间是我的三倍,其实我有些怀疑,我觉得差别不会这么大,有20%的差别就已经很不得了了。记得有个研究说是用户会在二十分之一秒内对网站做出审美判断,2S时间够用户判断400次了,就算这个1/20不正确,但第一眼的印象绝对不会达到2S之久,也就是在用户得出我页面的审美之后,你的页面还没有加载完(当然,审美判断的话……我的可能是被否决了……)

3、这里声明一下,最重要的目的不是针对浏览器开发,各种各样的用户都有,所以没有办法说哪一种做法就是正确的。所做的一切,无非是想能再快一点,快一点点就可以,只是为了让用户能够早一秒钟看到,这已经足够了

下面建议的1-3非常好,很快不改,4嘛,也非常好,但是,其实从昨天就在想要不要控制postBody里的样式,因为一旦控制太多,RSS或者其他做内容盗取的站会变得比较郁闷,我经常用IE7自带的RSS去看,如果样式不是写在内容里的,会变得一团乱,以前曾经试过控制里面的内容,后来还是放弃了。因为不能确定怎么做最好,所以就不做了,呵呵,正好可以懒一下
回复  4楼 回到顶楼 
  3周前   棕熊      :
@丁学
关于第1点,在现在2G内存成为主流的时代,你说的这种内存的开销完全可以忽略不计,因此因为css而影响页面展现速度,而引起用户体验变差,这只能说明css本身写的有问题,而不是因为写了很多css或者用了很多css hack。比如你说的那个ie6, 的确会有一些特定的样式规则(而且主要是filter)会引发crash, 那些规则不用就ok了,本来filter 就不应该是样式表里应该出现的东东。另外,网页性能只是用户体验的一部份而已,用户体验中视觉感受远远比性能重要的多。如果一个网页多用了500ms来渲染样式,却能实现很多的效果,用户是不会介意的。这个就是一个利弊权衡的问题。500ms(甚至很多时候都不用这么长时间)去换用户的视觉体验,我觉得比牺牲用户视觉体验去换500ms加载速度要好的多

2. 仍旧是这个利弊权恨的问题。现在开个IE或者firefox, 打开三五个网页就几百兆内存吃掉了,但一般人也不会觉得卡,因为这种内存和性能的开销并不是影响用户体验的大头。打开一个网页,没有感到卡就OK了。一个用一秒钟加载的网页和一个用3秒钟加载的网页,对于用户在家在时间上的感觉是没有区别的。用户只会感到它们都加载的很快,而不会感到前者比后者快三倍,没有人会掐着秒表来看网页加载的。更进一步说,用户不会关心你具体用了几秒加载,几秒渲染,占了多少内存,也不会关心你用了什么最先进的技术。用户关心的是他们看到的东西是不是对他们有用,够不够吸引他们。所以只要性能在用户可以接受的范围内,牺牲视觉设计而进行优化是不好的,这实际上在降低用户的体验。当然优化是要做,这个没错,但是不是以简化样式为目标,而是应该以优化代码为目标。

3. 这个就是我在1和2里反复指出的,为了节省一秒钟而牺牲视觉设计,其实是降低了用户体验,而不是改善。优化代码不意味着你必须简化代码,舍弃一些很好用的功能。另外,如果你的本意是为了写一个看起来很干净的皮肤话,完全没有必要纯用黑白。用elegant colors 就完全ok了
回复  5楼 回到顶楼 
  3周前   棕熊      :
另外,postBody其实只要加个padding-left看上去就应该好多了,没什么大必要给某篇post的正文内容家样式
回复  6楼 回到顶楼 
  3周前   随风流月      :
@棕熊
2G 内存成为主流?无语了。。。
回复  7楼 回到顶楼 
  3周前   deerchao      :
2G确实是新配机器的主流,但就国内所有还在工作的电脑来说,我估计512M以上内存应该还是在70%以上的。
回复  8楼 回到顶楼 
  3周前   棕熊      :
@随风流月
哪怕是只有512M内存也不至于显示不了网页阿
ipod touch 只有128M内存,至少到目前为止我也没遇到过因为加载css和cache 而造成性能下降的情况
回复  9楼 回到顶楼 
  3周前   丁学      :
没有结果的争论,不同的的环境有不同的需求,努力做吧,能做多少做多少,做出特色来,就算无法完美,也未尝不是一件好事
回复  10楼 回到顶楼 
  3周前   棕熊      :
@丁学
正式因为需求不同,所以才在第一篇给你的回复里,针对你的需求提出了4条改进意见阿……
回复  11楼 回到顶楼 
  3周前   杨正祎(阿一)      :
喜欢这种讨论的氛围,然后,我从中偷取知识~呵呵呵~~


css的写法其实有时候也会影响网页渲染的,特别是expression和一些ie滤镜。

css hack这个东西,我个人感觉,能避免还是尽量避免吧。因为这玩意对后来的浏览器是不可预知的,特别是最近浏览器更新的确有点频繁。

个人博客我觉得,可以针对面小一些,例如对IE6支持的不是很好,我觉得没有关系(只要不是特别影响阅读就可以),自己的地盘嘛。
但是如果是共享出来给很多的朋友分享的时候,可能就要尽量考虑多的浏览器、分辨率等情况了。
—— 个人意见,仅供参考。
回复  12楼 回到顶楼 
  3周前   棕熊      :
@杨正祎(阿一)
这也是我为什么很反对用expression和滤镜的原因,因为这些东东其实实现上也并不是很完美。
对于hack, 当然是能少用最好,但是很多时候为了解决问题,不得不用。这个也是不得已的事情。话说如果浏览器真的按照标准来执行的话,hack这种东西也就不会存在了。但是在可以预见的相当长一段时间内,还是会存在补丁上打补丁的事情。而且,基本上现在的hack还是只会针对IE6,其他浏览器都不会有太大的问题。
另外,你说的要尽量考虑多的浏览器、分辨率等情况,这个偶完全同意。这也是应该做到的基本事项。但是,实现的方式,并没有规定所有浏览器都该一样。比如IE6压根就不支持RGBA的PNG文件,所以自然要在IE6上采用代替方法。但这不意味着这个网页不支持IE6, 它只是提供了对IE6不同程度的支持而已。所以,只要遵循accessibility的原则去做,支持多浏览器绝对没问题的
回复  13楼 回到顶楼 
  3周前   杨正祎(阿一)      :
@棕熊
关于IE6的支持,我也是这样认为:风格不同也是可以的,只要不影响阅读就可以了。
其实根据IE6不认识高级选择符的特性,还可以制造出IE6下和其他浏览器下,看上去完全风格不同的模板的,我觉得,那样也挺个性的。有空的话,制造一个。呵呵~~

最近,博皮小组很热闹,提出来现行博皮母板的众多不足,的确,因为上此重构的时间时间有限,所以有些地方没有重构,或者重构的不够好(毕竟小弟技术有限的呀,呵呵~~)。 过一段时间如果工作不是那么紧的话,我会再次将博皮模板进行一些修改,特别是留言和评论那块。那样,大家的可定制性就会更强了~欢迎大家提出意见和建议哦。
回复  14楼 回到顶楼 
  3周前   棕熊      :
@杨正祎(阿一)
其实对于这种允许用户自定义样式的模板,采取每个模块都用独立id, 类似模块加上相同class可能会好些,呵呵
回复  15楼 回到顶楼 
  3周前   杨正祎(阿一)      :
@棕熊
现在的做法是:没有为所有模板命名独立id(因为,个人感觉,满屏的id有点那个……),但是基本上所有的模板都可以采用后代选择符,明确的定位到。例如,现在的sidebar那块。

不过,在下一版中,我会考虑你的建议。
回复  16楼 回到顶楼 

你还不是小组成员,加入小组以后才能发布新主题!
> 返回“博皮小组”


其他话题

1 21595