我可以这么按节点/路径层层定义下去:.loginarea label{} .loginarea input{} .loginarea div label{} .loginarea div input。如果我需要横向登陆,只需要定义一个关键点:.loginarea div{float: left},如果纵向则去掉这个关键点,模块化的登陆就这么简单。这样还可以省写不少class,尤其对于有些看似复杂的结构其实模块化设计好了,模块内部是简单的,一个路径定义过去,根本无需class还不会引起样式冲突和干扰,css的可读性也很好。当然这里会涉及到css的技巧,我认为css的技巧最重要的就是分析页面,页面分析的好,写出来的css简单明了充分利用tag还有多以备扩展,否则class一大堆复杂冗长还会觉得tag不够用又去添加破坏结构。复杂表单那套系统的css我写了48k,还未做最后优化,全部图片总共只有5K,还全是无损PNG格式。整套系统几十个大模块,又有无限级菜单、树、页签、弹出,复杂表单,合同,frame,iframe,报表,控件套控件等等乱七八糟什么都有,css加图片全部表现部分可以做到50K以内。这个项目四个程序员一起开发我一个人顶所有前台,三个月时间,程序员不管任何有关表现部分,我都是玩玩做做就搞定了。中后期,临着交付客户时候我还觉得公司提供的设计不好,又自己花1天重新设计,花不到2天另外写了一个css,整个系统全变了且以前的设计未丢失。功能不变的情况下界面大换,再大的系统也不过一个人几天时间,且程序员不用管。这就是Web标准的威力之一!(因为是内网应用,所以我几乎没考虑和照顾浏览器兼容性,没必要,也是快的一个因素)
所以我认为当前各大网站上以各种方式事先列出什么单行一列,两行一列诸如此类的几行几列的div+css布局代码,不好说他们不对,你完全可以去理解是如何使用css实现几行几列的布局,然后合理运用到自己的结构上。但是如果你按照他提供的代码去套、去添加内容,那么你就错了。不过话说回来,在被一篇一篇标题着斗大的“布局”两个字的潜移默化下,您还有心思去关心结构吗?所以很多都去琢磨css了,所以这些善意的Web标准推广者还是有错的,包括我在内,我2004年撰写的《重构之美》代码示例部分带有更大的误导性(好在当初我一再强调代码毫无借鉴的意义,也算在文字上有所弥补)。现在呢?我也不知道,在路上,在路上……
写很多了,span的合理运用留给Update吧。















