DIV+CSS网页设计规范总结

DIV+CSS网页设计规范总结
DIV+CSS网页设计规范总结

DIV+CSS布局的好处

1 内容和形式分离,网页前台只需要显示内容就行,形式上的美工交给CSS来处理。生成的HTML文件代码精简,更小打开更快。

2 改版网站更简单容易了,不用重新设计排版网页,甚至于不用动原网站的任何HTML 和程序页面,只需要改动CSS文件就完成了所有改版。对于门户网站来说改版就像换件衣服一样简单容易。

3 搜索引擎更友好,排名更容易靠前。

第一内容和形式分离,网页前台只需要显示内容就行,形式上的美工交给CSS来处理。生成的HTML文件代码精简,更小打开更快。

这个是DIV+CSS技术最现著的特点,也是CSS存在的根源。完全的颠覆现在传统(table)网页设计的技术。所有现在用table制作的内容,都可以用CSS来解决掉,而且解决的更完美,更强大。不需要大家再表格套表格,只需要用div套div就可以实现以往表格套表格所有的美工,这样的结果就是使用div+CSS技术,让生成的网页文件大小更精简,更小。table时代,一个页面表格达到10个以上是非常普遍的事情,但是现在用DIV+CSS,一个table都可以不用,就完全达到之前的效果,这就直接导致网页文件大小比使用table 时减少50%-80%,更节约各位站长的硬盘空间,访问者打开网页时更快,而且用div+CSS 时,不像以往使用table时,必须把全部table读取完了才显示页面内容,现在是可以读一个div就显示一个效果,大家打开网页不用等。好处真是明显而强大。

这个优点的确是显著的,凡是使用传统table建的网页,内容多的话,有时候达到30K 左右都有可能,文件打了打开时,肯定就有0.0几秒的延迟。使用DIV+CSS,由于没有表格使用,你前台打开看到的全是直接内容,CSS文件都是导入链接的,是另一个文件,根本和HTML文件大小没关系,这种生成的HTML文件,一个也就10K左右大小。文件数量少时看不出来,但是文件万级以上时,还是会节约几十M大小的。

但是使用table制作网页框架和表格时,全是选择化制作的,也就是说不用大家去写代码,很简单输入边框和行数列数就可以达到制作出来的要求,但是使用div+CSS时,完全是靠手写代码,一个表格写四行代码的话,如果一个页面涉及十多个div表格生成,手写代码将超过50行,而且如果你数学不好,或是逻辑思维能力不强的话,你手写出来的表格将是乱78糟,出现表格重叠和位置完全不正确。因为用div+css写表格时,表格间的逻辑

排列关系完全是靠自己手写代码判断,如果你没有很强的手写代码能力和逻辑性,你所花费的时间,比你用table制作时间至少是4倍左右。基本上一个页面定义的ID和class类,完整页面是不会少于20个的,一个ID或class手写5句,你制作一个HTML页面将超过100句代码,当然其中很多是可以存成一个CSS文件来重复调用的。也就是说相同的页面内容的话,排版一样的情况下,可以直接导入链接CSS来实现。

这个就很像之前生成HTML时,制作一个网页模板。但制作这个模板花的时间是用table制作时的几倍。这里有些人要说,但是我改版的时候,就只需要再写一个css就可以了,不用再生成HTML了。那么我要说,当你再写一个CSS文件改版时,我可能都已经用table制作好一个页面模板,而且还自动生成HTML全站的页面了。这不是不可能的。

第二点改版网站更简单容易了,不用重新设计排版网页,甚至于不用动原网站的任何HTML和程序页面,只需要改动CSS文件就完成了所有改版。

DIV+CSS对于门户网站来说改版就像换件衣服一样简单容易,改版时,不用改动全站HTML页面,只需要重新写CSS,再用新CSS覆盖以前的CSS就可以实现改版了。方便吧。

第三点搜索引擎更友好,排名更容易靠前。

DIV+CSS需要注意的问题

1. 检查HTML元素是否有拼写错误、是否忘记结束标记

即使是老手也经常会弄错div的嵌套关系。

2. 检查CSS是否正确

检查一下有无拼写错误、是否忘记结尾的} 等。

3. 确定错误发生的位置

假如错误影响了整体布局,则可以逐个删除div块,直到删除某个div块后显示恢复正常,即可确定错误发生的位置。

4. 利用border属性确定出错元素的布局特性

使用float属性布局一不小心就会出错。这时为元素添加border属性确定元素边界,错误原因即水落石出。

5. float元素的父元素不能指定clear属性

假如对float的元素的父元素使用clear属性,四周的float元素布局就会混乱。

6. float元素务必指定width属性

很多浏览器在显示未指定width的float元素时会有bug。所以不管float元素的内容如何,一定要为其指定width属性。

7. 是否重设了默认的样式?

某些属性如margin、padding等,不同浏览器会有不同的解释。因此最好在开发前首先将全体的margin、padding设置为

0、列表样式设置为none等。

CSS书写规范及方法

一. 常规书写规范及方法

1. 选择DOCTYPE:

XHTML 1.0 提供了三种DTD声明可供选择:

过渡的(Transitional):要求非常宽松的DTD,它允许你继续使用HTML4.01的标识(但是要符合xhtml的写法)。完整代码如下:

严格的(Strict):要求严格的DTD,你不能使用任何表现层的标识和属性,例如
。完整代码如下:

框架的(Frameset):专门针对框架页面设计使用的DTD,如果你的页面中包含有框架,需要采用这种DTD。完整代码如下:

理想情况当然是严格的DTD,但对于我们大多数刚接触web标准的设计师来说,过渡的DTD(XHTML 1.0 Transitional)是目前理想选择(包括本站,使用的也是过渡型DTD)。因为这种DTD还允许我们使用表现层的标识、元素和属性,也比较容易通过W3C的代码校验。

2. 指定语言及字符集:

为文档指定语言:

为了被浏览器正确解释和通过W3C代码校验,所有的XHTML文档都必须声明它们所使用的编码语言;如:

常用的语言定义:

标准的XML文档语言定义:

针对老版本的浏览器的语言定义:

为提高字符集,建议采用“utf-8”。

3. 调用样式表:

外部样式表调用:

页面内嵌法:就是将样式表直接写在页面代码的head区。如:

外部调用法:将样式表写在一个独立的.css文件中,然后在页面head区用类似以下代码调用。

在符合web标准的设计中,推荐使用外部调用法,可以不修改页面只修改.css文件而改变页面的样式。如果所有页面都调用同一个样式表文件,那么改一个样式表文件,可以改变所有文件的样式。

4、选用恰当的元素:

根据文档的结构来选择HTML元素,而不是根据HTML元素的样式来选择。例如,使用P 元素来包含文字段落,而不是为了换行。如果在创建文档时找不到适当的元素,则可以考虑使用通用的div 或者是span;

避免过渡使用div和span。少量、适当的使用div和span元素可以使文档的结构更加清晰合理并且易于使用样式;

尽可能少地使用标签和结构嵌套,这样不但可以使文档结构清晰,同时也可以保持文件的小巧,在提高用户下载速度的同时,也易于浏览器对文档的解释及呈视;

5、派生选择器:

可以使用派生选择器给一个元素里的子元素定义样式,在简化命名的同时也使结构更加的清晰化,如:

.mainMenu ul li {background:url(images/bg.gif;)}

6、辅助图片用背影图处理:

这里的”辅助图片”是指那些不是作为页面要表达的内容的一部分,而仅仅用于修饰、间隔、提醒的图片。将其做背影图处理,可以在不改动页面的情况下通过CSS样式来进行改动,如:

#logo {background:url(images/logo.jpg) #FEFEFE no-repeat right bottom;}

7、结构与样式分离:

在页面里只写入文档的结构,而将样式写于css文件中,通过外部调用CSS样式表来实现结构与样式的分离。

8、文档的结构化书写:

页面CSS文档都应采用结构化的书写方式,逻辑清晰易于阅读。如:

/*=====主导航=====*/

#mainMenu {

width:100%;

height:30px;

background:url(images/mainMenu_bg.jpg) repeat-x;

}

#mainMenu ul li {

float:left;

line-height:30px;

margin-right:1px;

cursor:pointer;

}

/*=====主导航结束=====*/

9、鼠标手势:

在XHTML标准中,hand只被IE识别,当需要将鼠标手势转换为“手形”时,则将“hand”换为“pointer”,即“cursor:pointer;”

二.注释书写规范

1、行间注释:

直接写于属性值后面,如:

.search{

border:1px solid #fff;/*定义搜索输入框边框*/

background:url(../images/icon.gif) no-report #333;/*定义搜索框的背景*/

}

2、整段注释:

分别在开始及结束地方加入注释,如:

/*=====搜索条=====*/

.search {

border:1px solid #fff;

background:url(../images/icon.gif) no-repeat #333;

}

/*=====搜索条结束=====*/

三.样式属性代码缩写

1、不同类有相同属性及属性值的缩写:

对于两个不同的类,但是其中有部分相同甚至是全部相同的属性及属性值时,应对其加以合并缩写,特别是当有多个不同的类而有相同的属性及属性值时,合并缩写可以减少代码量并易于控制。如:

#mainMenu {

background:url(../images/bg.gif);

border:1px solid #333;

width:100%;

height:30px;

overflow:hidden;

}

#subMenu {

background:url(../images/bg.gif);

border:1px solid #333;

width:100%;

height:20px;

overflow:hidden;

}

两个不同类的属性值有重复之处,刚可以缩写为:

#mainMenu,#subMenu {

background:url(../images/bg.gif);

border:1px solid #333;

width:100%;

overflow:hidden;

}

#mainMenu {height:30px;}

#subMenu {height:20px;}

2、同一属性的缩写:

同一属性根据它的属性值也可以进行简写,如:

.search {

background-color:#333;

background-image:url(../images/icon.gif);

background-repeat: no-repeat;

background-position:50% 50%;

}

.search {

background:#333 url(../images/icon.gif) no-repeat 50% 50%;

}

3、内外侧边框的缩写:

在CSS中关于内外侧边框的距离是按照上、右、下、左的顺序来排列的,当这四个属性值不同时也可直接缩写,如:

.btn {

margin-top:10px;

margin-right:8px;

margin-bottom:12px;

margin-left:5px;

padding-top:10px;

padding-right:8px;

padding-bottom:12px;

padding-left:8px;

}

则可缩写为:

.btn {

Margin:10px 8px 12px 5px;

Padding:10px 8px 12px 5px;

}

而如果当上边与下边、左边与右边的边框属性值相同时,则属性值可以直接缩写为两个,如:.btn {

margin-top:10px;

margin-right:5px;

margin-bottom:10px;

margin-left:5px;

}

缩写为:

.btn {margin:10px 5px;}

而当上下左右四个边框的属性值都相同时,则可以直接缩写成一个,如:

.btn {

margin-top:10px;

margin-right:10px;

margin-bottom:10px;

margin-left:10px;

}

缩写为:

.btn{margin:10px;}

4、颜色值的缩写:

当RGB三个颜色值数值相同时,可缩写颜色值代码。如:

.menu { color:#ff3333;}

可缩写为:

.menu {color:#f33;}

四.hack书写规范

因为不同浏览器对W3C标准的支持不一样,各个浏览器对于页面的解释呈视也不尽相同,比如IE在很多情况下就与FF存在3px的差距,对于这些差异性,就需要利用css 的hack 来进行调整,当然在没有必要的情况下,最好不要写hack来进行调整,避免因为hack而导致页面出现问题。

1、IE6、IE7、IE8、IE9、Firefox之间的兼容写法:

写法一:

IE都能识别*;标准浏览器(如FF)不能识别*;

IE6能识别*,但不能识别!important,

IE7能识别*,也能识别!important;

IE8能识别*,也能识别\0;

IE9能识别*,也能识别\9\0;

FF不能识别*,但能识别!important;

根据上述表达,同一类/ID下的CSS hack可写为:

.searchInput {

background-color:#333;/*三者皆可*/

*background-color:#666!important; /*仅IE7*/

*background-color:#999; /*仅IE6 IE7 */

_background-color:#999; /*仅IE6*/

background-color:red\0;IE8和IE9都支持;

background-color:blue\9\0; 仅IE9支持;

}

一般三者的书写顺序为:FF、IE7、IE6.

写法二:

IE6可识别“_”,而IE7及FF皆不能识别,所以当只针对IE6与IE7及FF之间的区别时,可这样书写:

.searchInput {

background-color:#333;/*通用*/

_background-color:#666;/*仅IE6可识别*/

}

写法三:

*+html 与*html 是IE特有的标签, Firefox 暂不支持。

.searchInput {background-color:#333;}

*html .searchInput {background-color:#666;}/*仅IE6*/

*+html .searchInput {background-color:#555;}/*仅IE7*/

屏蔽IE浏览器:

select是选择符,根据情况更换。第二句是MAC上safari浏览器独有的。

*:lang(zh) select {font:12px !important;} /*FF的专用*/

select:empty {font:12px !important;} /*safari可见*/

IE6可识别:

这里主要是通过CSS注释分开一个属性与值,注释在冒号前。

select { display /*IE6不识别*/:none;}

2、清除浮动:

在Firefox中,当子级都为浮动时,那么父级的高度就无法完全的包住整个子级,那么这时用这个清除浮动的HACK来对父级做一次定义,那么就可以解决这个问题。

select:after {

content:”.”;

display:block;

height:0;

clear:both;

visibility:hidden;

}

CSS+DIV标签命名规范

页头:header

登录条:loginBar

标志:logo

侧栏:sideBar

广告:banner

导航:nav

子导航:subNav

菜单:menu

子菜单:subMenu

搜索:search

滚动:scroll

页面主体:main

内容:content

标签页:tab

文章列表:list

提示信息:msg

小技巧:tips

栏目标题:title

友情链接:friendLink 页脚:footer

加入:joinus

指南:guild

服务:service

热点:hot

新闻:news

下载:download

注册:regsiter

状态:status

按钮:btn

投票:vote

合作伙伴:partner

版权:copyRight

1.CSSID的命名

外套:wrap

主导航:mainNav

子导航:subnav

页脚:footer

整个页面:content

页眉:header

页脚:footer

商标:label

标题:title

主导航:mainNav(globalNav) 顶导航:topnav

边导航:sidebar

左导航:leftsideBar

右导航:rightsideBar

旗志:logo

标语:banner

菜单内容1:menu1Content 菜单容量:menuContainer

子菜单:submenu

边导航图标:sidebarIcon

注释:note

容器:container

内容:content

搜索:search

登陆:login

功能区:shop(如购物车,收银台)

当前的current

DIV+CSS网页设计规范

1、网页HTML代码最前面必须包括W3C声明,以便符合标准:

一般网页:

框架页:

2、网页编码声明:

简体中文网页为gb2312

繁体中文网页为big5

英文网页为utf-8

3、采用CSS链接方式,全站使用同一个CSS文件,实现内容与表现分离:

不要将样式直接写在页面html代码中,页面中不得使用