雨润心灵,哲思天下

  博客园 :: 首页 :: 联系 :: 订阅 订阅 :: 管理
  13 Posts :: 0 Stories :: 58 Comments :: 1 Trackbacks
    做Web前端开发,网页布局和美化不可避免,心想不就div和css吗,标签、属性、样式没啥了,可不曾想和静态页面设计人员打交道竟成了可怕的梦魇,而且一次又一次。当我愤怒地做起兼职设计,修改那些垃圾代码时,心中便暗中发誓怎样才能避免这样的情况再次发生,那些样式能不能优雅一些呢?前段时间也看过某大大的文章,确实啊,美工们全活在乌托邦!美工如果不了解一些技术实现和业务流程的话,说实话,很难和开发人员耦合好!下面简单说一点自己的看法吧。

1.绝不重复,让你的css优雅起来
    做布局设计,大局观很重要,需要抽象出来哪些是必须和多次使用的元素,一般div和ul,li吧,再结合界面设计图抽象出它们的共性,如border、padding、white-space、font-size等等,做全局处理。尽量的减少css代码量,例如如果全局的padding:0px;那么在某个具体的标签中就不要加上这个了。不重复的设计不仅代码量小,优雅整洁,而且另外的好处就是维护方便,应对变化轻松自如。

2.限制全局的势力,明确管理范围
    第一条说的意思就是鼓励用全局解决每个class和标签的细节设计过于繁冗的问题,但这样真的就算优雅了吗?优雅的标准是什么?至少应该是没有“安全隐患”吧。何谓“安全隐患”,一次经历让我深感明确职责的重要性。全局一旦使用,它会对页面的相关所有标签起作用,这样做它的权利是不是太大了点呢。那次的经历就是一个发表文章的界面,用了一个可以生成各种样式和直接支持从word粘贴功能的编辑器(Fckeditor),而css里不乏p、span、div等全局样式定义。比如说p标签,设计人员的原意是用来做文章标题的样式的,用了绿色的大字体,结果编辑器生成的代码里面就含有p标签(直接从word贴过去的话,生成的垃圾样式超多),便出现了文章内容大段大段的绿色大字体的壮观场面。
    显然只遵循第一条是远远不够的,全局有好处,但势力未免太大了点,结合起来的用当然最好。其实结合起来也很简单,如果你规定哪个区域的所有li用某个样式,你只需要用#区域id li{...}这样写就可以,区域之外的li丝毫不会收到影响。采用这种方式的原则是你明确知道区域内的所有可能出现的标签和其所附带的样式。做好每个区域后,若每个区域有共性,在将共性抽离出来作为全局。这样解决了“安全隐患”,便又优雅起来了。当然,想上面提到的编辑器所带来的灾难,根本原因就在于不知道编辑器会生成怎样的标签和样式的前提下,贸然的采用了全局,无形中扩大了全局的势力,让它“越权”管了违背本意的区域和标签。如果考虑本条原则,这个情况是可以避免的。

3.在设计中加入一点动态的业务逻辑思维
    要求美工设计一段grid内嵌html代码的样式,发给我一看效果不错,可当我准备直接结合数据嵌入时,麻烦来了。怎么全是用id标识的样式啊,grid是啥意思啊,不就是在页面输出样式重复但内容不同的东西吗。用了id那岂不是我一页输出十条记录,这也页面将出现十个相同的id?那这是谁的错呢?开发人员说要一个酷酷的样式,你设计人员确实原原本本的做到了又酷又整洁。可当结合起来还是出现了问题,从程序员的角度来看待这个问题,我希望设计人员有一点动态的意识。类似的情况还包括设计人员应该在设计样式时把什么鼠标经过,鼠标点击等效果做齐了,内容编号的区域高度不要做死了(最好自适应就好了),内容超过时怎么处理等等。

4.跨分辨率与跨浏览器
    这两点应该成为设计人员交工前必须的检查环节。跨分辨率意味著请尽量采用百分比来处理宽度。百分比的一个好处还在于当改变最外层元素的宽度时可以很轻松的适应这种变化,而不用对每个标签的width进行修改。跨分辨率还能识别那些依靠margin-left:**px;的“假居中”情况。跨浏览器是个累人的活,需要不断测试,涉及到很多css的应用技巧,在这里不一一罗列,这也不是一个开发人员开的事儿,只是必须作为硬性要求来规定。要特别注意各浏览器对padding等标签的解释差异,有时一些padding=1px,2px的情况,跨浏览器时出现差异,设计人员居然没看出来,等到搞开发的发现,确实有点郁闷。

5.更加友好的和开发人员耦合
    做好前面那些,这个设计人员已经相当的出色了。但还可以更好。谈到和开发人员的耦合问题,这意味著开发人员完全不需要担心和读懂那些css,而只需要操纵和呈现数据,完成业务流程即可。以前有一个美工,和他合作就非常舒服,他会经常在设计好的页面上加入“这里放新闻,这里最多只能容纳50个字”等等提示,开发人员一看就懂得处理。可是那样的感觉从那之后我再也没有享受过。这算一种境界也算是开发人员的期望吧,呵呵。

    我非美工(这里的美工指页面布局和样式设计)人员,上面所谈难免肤浅和业余,更多的代表Web前端开发人员的一点点心声吧,轻拍。

posted on 2007-09-24 13:12 雨哲 阅读(2447) 评论(28)  编辑 收藏 所属分类: JavaScript&DHTML

Feedback

感觉公司中相当多的都是美工,即平面设计类的,还没见过网页设计师
  回复  引用    

#2楼  2007-09-24 13:24 随风流月      
反正我什么都干,不在乎了...
XHTML 语义化是大势所趋。
  回复  引用  查看    

分的细的话,这应该属于UI工程师。
  回复  引用    

#4楼 [楼主] 2007-09-24 13:30 雨哲      
@designbeauty
UI工程师 很对,UI变得越来越重要,我期待更加细致的分工
  回复  引用  查看    

无论如何都要顶一下,UI现在重要性越来越高了
  回复  引用    

#6楼  2007-09-24 13:49 guest [未注册用户]
楼主说的每一点都很有道理。

不过我还觉得,在代码结合的过程中,沟通,协调最重要。如果界面方面结合程序的确很困难,程序员会考虑换一种实现方式么
  回复  引用    

#7楼  2007-09-24 14:03 极地银狐.NET      
上星期小看了一下CSS,发现程序员其实也应该掌握一些,谢谢楼主分享.
  回复  引用  查看    

#8楼 [楼主] 2007-09-24 14:11 雨哲      
@guest
沟通对于任何一个多人工作都是最重要的,现在流行js操纵DOM,动态的生成一些标签,确实也加大了融合的难度。但原则不会变,数据和事件是开发人员的,放在哪,多高多宽,多少字体,多少间距,什么颜色是设计人员的
  回复  引用  查看    

#9楼  2007-09-24 14:21 wangdotnet [未注册用户]
近一千人的公司里 没有美工,有项目还能不干?
  回复  引用    

#10楼  2007-09-24 14:49 kingren [未注册用户]
修改界面真的好痛苦, 我都想哭了。。。。。
  回复  引用    

#11楼  2007-09-24 16:02 秋天叶落      
一样呀 我们美工就是个平面设计的 做出来一个jpg图
我照着图在写 代码 苦呀
  回复  引用  查看    

谢谢分享~~~~受益匪浅~~~~
  回复  引用    

#13楼  2007-09-24 17:15 etng [未注册用户]
把P改成那个德行了肯定应该是局部的啊,难道用到全局?如果是,这样的人不要也罢
  回复  引用    

#14楼  2007-09-24 17:25 阿慧南      
我在项目兼作做页面UI设计,主要工作还是写程序。
我对CSS不是特别了解,还没有达到 div CSS 的境界,一般还停留在table。

虽然并不是那么优雅,但是一定让开发人员很好用,几乎不用关心样式。
在大家开始前我一般会吧基础的页面都写好了。
  回复  引用  查看    

#15楼  2007-09-24 18:22 Eri [未注册用户]
--引用--------------------------------------------------
雨哲: @designbeauty
UI工程师 很对,UI变得越来越重要,我期待更加细致的分工
--------------------------------------------------------

顶,确实需要这样的人,但是几乎没有。
  回复  引用    

#16楼  2007-09-24 18:39 李华顺      
要用OOP的思想来写CSS,这样的东西才是最美的
  回复  引用  查看    

#17楼 [楼主] 2007-09-24 19:07 雨哲      
@李华顺
对css的使用我也就到这个程度,从没有系统研究过,用OOP该怎样写呢?期待你写点相关的文章
  回复  引用  查看    

#18楼  2007-09-24 21:04 兴百放      
这个我深有体会阿,公司就一个美工,对Css还不熟,我呢对Css还能控制一点,所以公司做项目的时候让我做美工!:(
有的时候为了一个调整Div,一个界面都弄一个上午,有的时候还不满意
多么想有一个现成的UI我可以不用考虑UI,专心写代码,
可是这个可能吗?
难!毕竟美工不懂代码(确切的说不懂控件的呈现方式)

@李华顺
难道美工还懂OOP,是不是对美工太难了
  回复  引用  查看    

#19楼  2007-09-24 23:06 Cat Chen      
1.“比如说p标签,设计人员的原意是用来做文章标题的样式的”
用p来做文章标题?这明显是违反语义的做法,导致你出现所谓的“隐患”当然很正常。p表示段落,粘贴过去的文章每一个段落是一个p,你的文章标题是一个p,你说谁是做错的?

2.“怎么全是用id标识的样式啊,grid是啥意思啊,不就是在页面输出样式重复但内容不同的东西吗。”
严谨的设计人员除非在明确重复内容的前提下,否则尽量使用id,这是正确的做法。用了id,意思就是我期望这个元素仅出现一次,从而避免了你之前所说的“安全隐患”。既然这组规则仅匹配一个,就不存在任何“意外匹配”。因此什么元素会重复,什么元素不会重复,最好先明确了,让别人滥用class是不好的。

3.“有时一些padding=1px,2px的情况,跨浏览器时出现差异,设计人员居然没看出来,等到搞开发的发现,确实有点郁闷。”
如果你是指浏览器所导致的bug的话,那么你确实应该和设计人员沟通,敦促他们熟悉各种浏览器不同版本所存在的bug,并且要知道用什么对应的hack去解决,当发现新的bug时该如何寻求解决方案。
  回复  引用  查看    

#20楼  2007-09-25 09:20 杨正祎      
1:比如说p标签,设计人员的原意是用来做文章标题的样式的

p的语意被错误的使用了。因为p的语义是用来定义段落的。而不是标题的,标题应该用h1,h2,h3等。

2:全局有好处,但势力未免太大了点
你所谓的全局,其实优先级是很低的,不要说用id,就是前面加个class,优先级也比它高10倍左右。

3:怎么全是用id标识的样式啊,grid是啥意思啊,不就是在页面输出样式重复但内容不同的东西吗。
你们的美工没有处理好id和class的选择,或者说她对.net控件理解太少。不知道grid和table的区别。

4:跨浏览器时出现差异,设计人员居然没看出来,等到搞开发的发现,确实有点郁闷。
美工不会关浏览器的兼容性,程序员不会调整浏览器的兼容性,上司不懂浏览器的兼容性,所以出现了浏览器的兼容性一直没有人去解决。其实是因为中间缺少了一个角色——网页设计师。

5:“这里放新闻,这里最多只能容纳50个字”等等提示
这是一个美工的工作态度问题。其实这有什么难的呢?但当美工认为这是策划或者程序员的事情时,再简单的事情她也不会去做。
  回复  引用  查看    

#21楼  2007-09-25 09:24 杨正祎      
@Eri
很荣幸,我勉强算一个。呵呵~(脸皮很厚中……)

  回复  引用  查看    

#22楼  2007-09-25 09:26 杨正祎      
@李华顺
说实话,css对oop和ood的支持很有限。特别是继承方面很弱。暂时还很难用ood的思想去做。只能很勉强的使用各种选择器优先级的差异表现一点点ood的思想。但是依然不是很实用。
  回复  引用  查看    

#23楼 [楼主] 2007-09-25 10:17 雨哲      
@杨正祎
当初想写一点css的东西就是看了你那篇激动项目总结的,很多说在点子上了,我想更多的尴尬更多的问题就在于那个UI工程师的角色没有专人担当啊。个人那些东西虽然东西虽然了解些,也有些优化意识,但还是想往后台往底层走一点,呵呵。
  回复  引用  查看    

#24楼  2007-09-25 10:32 by1455      
我的意见有点不同,好的css设计可以让coding事半功倍
这本书《bulletproff web design 无懈可击的web设计》每个web开发者不可不读。
现在手上的项目是Css+jquery+MOSS. 程序员的工作几乎被简化的极致(在用户界面方面)90%以上是在写ul和li。呈现给用户的界面从设计开始到项目验收。99%相似。

  回复  引用  查看    

#25楼  2007-09-25 10:46 oldmoon [未注册用户]
当美工不懂UI的时候,程序员我压力会很大,我现在是深有体会
  回复  引用    

#26楼  2007-09-25 12:19 杨正祎      
@雨哲
的确,ui设计师这个在中国是最近才提出来的。很多的公司都没有注意过这个角色。所以现在ui的工作一般都落到了程序员的头上。这对程序员的专一发展是不利的。因为毕竟人的精力有限,也不是每个人都对“调画面”有兴趣。
但是随着“web标准设计”的日益令人注意,这样的情况应该以后会有所改善。看看现在很多的大型网站已经开始招聘这样的人才了。

web标准设计牵扯到的东西比较多而且比较杂,所以我个人感觉现在在中国真正算的上是网页设计师的没有多少。我这样的只算是个哗众取宠的冒牌货而已。

现在公司如果没有这样的角色,我觉得解决方法有3種:1:美工去学,2:让程序员去学 3:还是使用原始的table布局。虽然兼容性不好,也不符合web标准。但是如果你的客户不care这些,那又有什么关系呢?

最后谢谢你对我的博客的关注。
  回复  引用  查看    

在国外的IT企业早就有UI工程师,在中国相关企业还很少,几乎没有,这基本上跟管理者的有关,有些人根本不明白什么是UI,更不要说什么是DIV布局或者是table布局。
  回复  引用    

#28楼  2007-09-26 03:18 Zhuang miao      

要重视UI人才的培养!将来的程序将是外观的大战了!!
  回复  引用  查看    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: