|
客齐集OEM的CSS解析 这个OEM是客齐集推出来的,如果你有一个域名,那么你就可以定制自已的网站了。由于是要让站工自已定制,所以开放了HTML以及CSS、JS等代码。但默认的CSS是CSS是不能改的。 在写这个CSS时,我尽量用最少的标签,这样很站对CSS不是很熟的站长也可以定制。另外布局时和写CSS时,总的思想的就是从大的到小,从小到细。 这个布局和CSS是一次写成的,没有更改过,所以有一些地主还是可以优化的,这样的代码也不是最优的。但是,这样的布局的CSS是可以让站长定义成各式各样的。一会我给大家看一些例子。 以下是这个CSS的解析,很合适于初学者看。 程序代码 @charset "utf-8"; /*定义全局,在这定义了全局中的标签*/ * {margin:0px;padding:0px;} /* 在这里定义了全局的文字大小为12PX,行高180%;这样的行高看起来眼睛不会太累。 在这里,我把宋体放在了Verdana字体的后边,是为了中页面中的数字和英文能以英文字体显示,这样会漂亮一些;有些人不加宋体,但这样会有问题的,最起码我的测试结果是这样的。 另外,我加了背景色,是因为在某些操作系统下的某些浏览器中,如果要不加背景,那么他的背景就会是其它的色。 我在这里还定义了整体文字色。没有用黑色是为了让眼睛舒服一些; 最重要的一些为是加了textalign;这个是让BODY中的内容全是居中,与里边一个大的DIV块合用,就可以实在如果页面内容是定宽的,那么在IE和FIREFOX等浏览器中内容总在网页的中间,主要是为了解决IE和FIREFOX中的差别,这里把文字弄成居中,然后我们再在BODY中加一个大的DIV块,把这个DIV的块写成文字左对齐, */ body{ font-size:12px; line-height:1.8; font-family:Verdana, "宋体", Arial,Sans; text-align:center; background:#FFF; color:#666;} /* 这里定义了全局的文字链接样式,我用了简写的形式,样式是和客齐集主站是一样的 */ a:link,a:visited{color:#000099; text-decoration: underline;} a:hover,a:active{color:#000;text-decoration: none;background-color: #FED762;} /* 由于布局中将会用到很多的UL和LI,而UL和LI本身的样式并不好看,所以在这里我们去除列表小点以及边距等 */ ul,li{ list-style:none;} /* 这里定义图片的边模框为0,这里全局定义一下。后边有加边框的,另外再加,主要的思想还是从大到小。 */ img{ border:0;} /* 这个是就包在BODY里的最大也是最外边的一个DIV块,有了就可以控制整个网页内容的宽度了。与BODY合用,就可以实现自动居中了。定义整个网站的宽度和水平居中 1、这里定义了文字全部为左对齐。 2、用MARGIN来实现在FIREFOX中居中。 3、用OVERFLOW是担心有些人定义的内容会太宽而影响了布局。所以缢出就自动隐藏了; */ #wrapper{ text-align:left;margin:0 auto; width:1000px; overflow:hidden;} /* INFO这里又加了一个宽为百分百的DIV块,加他是为了让有些站长可以把布局定制成全屏的,右边定宽,左边自动适用而加的。并是解决一行两列的的前题基础。 这里我加了FLOAT,是为了“以毒攻毒”就是用浮动来解决浮动。因为右边也要加浮动; */ #info{ width:100%; float:left; } /* 这里是导航条 用BODER来加上边的绿色 */ #nav{width:100%; text-align:center; border-top:5px solid #5DB30A; background:#FAFAFA; line-height:2.2} /* 这里用了绝对定位,因为一共有三个以上的页面要用这个,很有可能他会受其它内容的影响,所以就定义为绝对定位,这样基本上不会受到影响。 bykijiji的图片位置 */ #bykijiji{position: absolute; margin-left:550px; margin-top:-20px;} /* 主体大块*/ #main{text-align:left;margin:0 auto;} /*底部大块*/ #footer{border-top:1px solid #CDCDCD; padding:10px 0; clear:both; text-align:center;margin:0 auto;} /*头部大块*/ #header{ clear:both} /* 这里定义了HEADER区标题文字的大小。色彩等。主要是为了让站长直接加文字LOGO就可以了。 标题*/ #header h2{ font-size:35px; margin-top:0px; font-weight:bold; color:#404040} /* 以下LEFT和RIGHT是完成一行两列布局为。我在LEFT外边加了一个INFO。是为什么让定制更灵活一些,可以实现页面适度自动适应。 左边大块 这里的LEFT距右边305PX,由于他外边有一个百分之百的DIV。所以,这样就给右边一列留下了305的宽度。就样LEFT就可以自适应了。 */ #left{ margin-right:305px;color:#000; font-size:14px;} /*这个是LEFT里边的一个最大的DIV。这个是为是解决不同版本浏览器对PADDING的解释和计算的方法的不同*/ #leftbox{ padding:10px; font-size:14px;} /*右边大块 由于他前边的INFO的宽已经是百分百了,而里边的LEFT又给他留了一个305PX的空子。所以让他距左边负的305PX就正好和LEFT挨上了。在这里写了300PX,是和左边大块离开5PX;这样看上去更舒服。 这里我定义了宽是289PX;再加上PADDING左右的各5PX;是299PX; 为了安全,我少写一个像素。 */ #right{ margin-left:-300px; float:left; width:289px; padding:5px;background:#F7F7F7; margin-top:24px;} /* 这是搜索那一条,没有什么好说的。 搜索那一条*/ #search{ padding:0 0 10px 0; text-align:left} /*定义标题文字大小*/ h1{ font-size:16px;} /* 在这里,定议了 公用的三个CSS,他们都是布局中常用的。分别为水平换行,左浮动和右浮动 这样命名很简单,而且字符最短,这样论在CSS文件中,还是页面中,最能作到代码尽量少。 */ .c{clear:both; height:0px; overflow:hidden;} .l{ float:left;} .r{ float:right;} /*这里定义了一个文字大小,由于上边定义的很多都是12PX;可能或一定会有部分地方要用小字的,所以提前写在这里。*/ .f12{ font-size:12px;} /*这义SMALL的文字大小。*/ small{font-size:12px;color:#999;font-weight: normal; padding-left:5px;} .h_hr{ height:1px; overflow:hidden; margin:10px 5px; background:#CDCDCD;} /*++++++++++++++++++++++++++++++++++++++++++++++++++ 以上就是定义的全局。然后在下边又分别对首页,LIST页面,以及单个信息的页面作了单独的CSS; 可以看出,用了上边的基础,下边单个页面CSS写起就方便多了。而且只要很少的代码就可以了。可能首页的代码会多一些; 下边的这些就不一一说明了。很简单的东西。 */ /*单个页面部分*/ .imgbox{ text-align:center; width:200px;} .imgbox img{ border:4px solid #CCC; display:block; margin:0 auto; } .navbox{border-left:4px solid #f5f5f5; margin:5px 0 10px 0; padding-left:8px; } /*LIST页面部分*/ #listnav{ background:#f7f7f7; line-height:2.0; padding-left:10px; border-bottom:1px solid #D4D4D4;} .listbox{ color:#666;width:590px;font-size:12px;border-bottom: 1px dashed #CCC;} /*绿色的时间*/ .listbox p{color: #008000;} /*大标题*/ #leftbox h2{font-size:14px; margin-top:10px;} #leftbox span{ margin-left:10px;} /*首页页面部分*/ #h_center_l{ width:66%; border-left:1px solid #CDCDCD;border-right:1px solid #CDCDCD; float:left; margin-top:10px;} #h_center_lbox{width:49%; border-right:1px solid #CDCDCD; float:left;} #h_center_lboxb{width:50%; float:right;} #h_center_r{width:33%; float:right;margin-top:10px;} #h_center_l h1,#h_center_r h1{ padding-left:5px; font-size:14px;} #h_center_l ul,#h_center_r ul{ padding-left:19px; font-size:12px;} #qcity{clear:both; margin-bottom:20px; margin-top:10px;} #qcity li{ display:inline; padding-left:10px;} #qcity h3{ font-size:14px; color:#000} #links { border-top: 1px solid #CCC; margin-top: 15px; } /*广告块部分*/ #leftbottomad{ background:#FFFFCC; margin-left:10px; display:none} #pfm{padding:20px; font-size:12px;} /*CSS完*/ 说一说我个人在写布局和CSS的一点感受吧!说明,只是个人的感受! 1、了解用户群,如果你的用户是白领都是学生。那么你没有必要去考虑IE5以下的版本。那样你会累死的。 2、一行三列或一行二列自动适应,这个例子就可以了,他在IE6,IE7,FIREFOX等的效果都是一样的。没有必要有一堆代码去写一个自动适应。 3、布局最难的就是布表单了。表单中的元素太多了,很难控制,特别是要适应很多浏览器。这个是更难了。如果将来我遇到表单,如果不是非常简单的,那么我一定用表格,我想信,复杂的表单用表格去布局,代码一定会小于那个人家常说的DIV+CSS。而且有表格布这东西,维护特别的容易。 4、在CSS设计的时间,总的来说,是标签从大到小来定义,布局从大块到小块。标签不一定用到很多。 5、有些人认为不要给那些DIV或块加上什么ID; 我认为,加ID是正确的,如果ID中有不同的标签,那么通过CSS来控制就在容易了。有时我们会认为一些同样的色彩应该写在一个CLASS里。然后哪里用到那么我们就在哪里调,如果变色,一改这个CLASS就全变了。但是,我想问,如果不全变呢,只变一块,你怎么办。还去改布局吗? 如果是这样,那么结构和表现分开又有什么意义呢。 6、我们布大局可能会很简单,就像盖房子,大的样子几天就起来。但细细装修就麻烦了,又苦又累。我们常常分为了一个像素,节省一行代码而浪费大量的时间在上边,我感觉时间还是要花的,但是要有一个度。 7、布局时,我们也许把布局和CSS都弄的很NB。但同事一时半会看不懂你为什么要这样写,这样多人开发就很难了。你写的东西可能只有你能改。这样就麻烦了。所以,我们一定非要布局写的很NB。适应用点表格也是可以节省代码的。而且都能看懂。 |
|