CSS编码规范
一、 基本书写规范
1、所有的CSS的尽量采用外部调用
<LINK href="/style/style.css" rel="stylesheet" type="text/css">
书写时重定义的最先,伪类其次,自定义最后(其中a:link a:visited a:hover a:actived 要按照顺序写)便于自己和他人阅读。
为了保证不同浏览器上字号保持一致,字号建议用点数pt和像素px来定义,pt一般使用中文宋体的9pt和11pt,px一般使用中文宋体12pt 和14.7px 这是经过优化的字号,黑体字或者宋体字加粗时,一般选用11pt和14.7px 的字号比较合适。
2、CSS推荐模板:
<style type="text/css"> <!― body {}{ font-size:9pt; font-family:Arial, Helvetica, sans-serif; color:#333333; text-align:center; margin:0px;} ul {}{ margin:auto; } img {}{ border:0px; } a {}{ font-size:9pt; text-decoration:none;color:#FFFFFF; } a:hover {}{ font-size:9pt; text-decoration:underline; color:#990000; } a.1 {}{ font-size: 9pt; color: #3366cc; text-decoration: none} a.1:hover {}{ font-size: 9pt; color: #FF9900; text-decoration: none} .colorblue,colorblue:hover {}{ color:#003366 ;} .blue {}{ font-family: "宋体"; font-size: 9pt; line-height: 20px; color: #0099FF; letter-spacing: 5em} .colorRed,a.colorRed:hover{}{ color: #FF0000; } .colorLime,a.colorLime:hover{}{ color: #00FF00; } .colorGreen,a.colorGreen:hover{}{ color: #008000; } .colorBlue,a.colorBlue:hover{}{ color: #0000FF; } .colorOrange,a.colorOrange:hover{}{ color: #FFA500; } --> </style>
?
为了保证浏览器的兼容性,必须设置页面背景<body bgcolor="#FFFFFF">
3、其中注释写法,例:/*header begin!*/
二、CSS命名参考
1、常用的CSS命名规则:
头:header
内容:content/container
尾:footer
导航:nav
侧栏:sidebar
栏目:column
2、直观命名
当在设计Web页面以及需要对一个div进行标识的时候,最自然的想法就是使用可以描述元素所在页面位置的词汇来对其命名。这种方法使得类以及id的名称如下面所示:
自上而下小组:top-panel
横向:horizontal-nav
左面:left-side
中心-栏目:center-column
右面:right-col
这些是CSS以及XHTML类和id的有效命名方式。这些词汇简单并且能够使人顾名思义,因此满足了标识页面元素以及相应的CSS样式的需要。
但问题是这样的名称同页面内容的特定表达方式相关联。这些命名参考了某种特定页面布局中的页面元素位置,因此在这样的布局之外使用就会显得不合适甚至造成理解混乱。同时,这些命名没有涉及文档内容的结构。因此,下面给出了对CSS类以及ID命名更好的方法。
3、结构化命名
结构化的标记意味着表达方式/位置信息同内容的完全分离――这其中包括出现在标记(markup)中的类和id名称。
有标记的相关信息都是用来描述文档的结构而不是外观。这样的特点使得我们可以通过简单的改变CSS的方式来对不同外观格式下的内容(content)以及标记(markup)进行重用。当你理解这种方式时,很容易就可以发现采用页面位置来为类以及id命名的方式在处理如音频(audio)等外观格式上显得非常不合适。因此,应当根据在文档中的使用目的而非出现位置来对类以及id进行结构化命名。
可以按照如下所示的结构化方式来对类以及id名称命名:
顶部抢眼部分:branding
导航部分:main-nav
主要内容部分:main-content
这些名字同直观命名方式一样非常易懂,但他们描述了页面元素的作用而非位置。这使得代码更加符合使用纯粹的结构化标记(structural markup)的初衷,即开发人员可以在不改变标记的情况下对各种各样媒体下的显示格式进行处理。
即使你不打算在其他的媒体上对Web页面进行格式修改,使用结构化命名方式还可以帮助你在日后的站点升级或重新设计中更为轻松。例如,结构化命名避免了当一个div同id right-column移动到页面左边后所带来的混乱。对div sidebar的采用这样的命名方式就显得更加适当,因为无论它出现在页面的哪一边,这个名字仍然对开发人员来说直观易懂。
4、惯例
Andy Clarke分析了40份由推崇标准化Web设计理念的开发人员所设计的Web站点的源代码。尽管类以及id名称很不统一,但是还是发现了一些频繁出现的常用名称。这里给出了最常用类/id名称的示例列表:
header
content
nav
sidebar
footer
如果要查看完整的列表,可以看看最常见命名惯例表
这些常见的类以及id名称是否标志着一种标准的诞生或是普遍接受惯例的形成呢?尽管这是我所希望的,但我并不这么认为。我的确希望能够看见一整套对于我们每天都可以看到的常用页面元素的命名标准。同时,使用标准化的命名方式可以使得寻找页面元素以及对Web站点升级带来方便,尤其当需要在由不同开发人员在不同时间所开发站点中换来换去工作的时候。
review:
大的布局div可以以外观的方式命名(如header,footer),其他的我觉得还是应该以描述所含内容的标准来命名(如menu,news)
5、自定义命名:
根据w3c网站上给出的,最好是用意义命名
比如:是重要的新闻高亮显示(像红色)
有两种
.red{color:red}
.important-news{color:red}
很显然第二种传达的意义更加明确,所以尽量不要用意义不明确的作为自己自定义的名字
三、CSS样式书写顺序
1、显示属性
* display * list-style * position * float * clear
2、自身属性
* width * height * margin * padding * border * background
3、文本属性
* color * font * text-decoration * text-align
* vertical-align * white-space * other text * content
规范参考
本规范既是一个开发规范,也是一个脚本语言参考,本规范并不是一个一成不变的必须严格遵守的条文,特殊情况下要灵活运用,做一定的变通。但是,请大家千万不要随意更改规范。如果有任何问题,请及时与我联系,我会及时更改本规范的相关代码样例和文档。
/基 本 要 求
1. 在网站根目录中开设images common temp 三个子目录,根据需要再开设media 子目录,images目录中放不同栏目的页面都要用到的公共图片,例如公司的标志、banner 条、菜单、按钮等等;common 子目录中放css、js,、php、include 等公共文件;temp 子目录放客户提供的各种文字图片等等原始资料;media 子目录中放flash, avi, quick time 等多媒体文件 。
2. 在根目录中原则上应该按照首页的栏目结构,给每一个栏目开设一个目录,根据需要在每一个栏目的目录中开设一个images 和media 的子目录用以放置此栏目专有的图片和多媒体文件,如果这个栏目的内容特别多,又分出很多下级栏目,可以相应的再开设其他目录。
3. temp 目录中的文件往往会比较多,建议以时间为名称开设目录,将客户陆续提供的资料归类整理。
4. 除非有特殊情况,目录、文件的名称全部用小写英文字母、数字、下划线的组合,其中不得包含汉字、空格和特殊字符;目录的命名请尽量以英文为指导,不到万不得已不要以拼音作为目录名称,经验证明,用拼音命名的目录往往连一个月后的自己都看不懂,
/脚 本 编 写
我们应该有一个脚本整体风格一致的概念,意思是一个月后和一个月前的你写的脚本风格保持一致,以及同一个工作组中不同的开发人员编写的脚本风格保持一致,因为我们不可能永远孤立的开发,你随时都有可能和三个月前的自己合作(你的客户要求改版),也经常要和工作室中不同的同事共同开发一个项目,还有可能被要求修改已经离职人员开发的脚本,当然你自己也有可能会扔下一个项目给后来的同事。
1. Html 文件的通用模板:
<html>
<!--
Generator: Sub Design Studio ( www.eastline.net.cn)
Creation Data: 2000-8-1
Original Author: eastline
-->
<head>
<title> 文档标题 </title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<meta name="author" content="eastline">
其他meta 标 记
<link rel="stylesheet" type="text/css" href="style/style.css">
样式表定义
客户端Javascript 函数定义及初始化操作
</head>
<body bgcolor="#ffffff">
… …
</body>
补充:
为了保证网站能够与下一代的web 语言xml 标准兼容,所有的HTML 标签的属性都要用单引号或者双引号括起,即我们应该写 <a href=”url”> 而不 是 <a href=url>.
2. 允许全文检索的页面,为了使Internet上的搜索引擎能够有效检索,在频道的首页的html的<head></head>之间应该加入Keywords 和Description 元标记,例如 :
<meta name=”keywords” content=”东方新干线,汽车,买车”>
<meta name=”description” content=”东方新干劲线,全球中文汽车信息第一站”>
3. CSS 文件的格式样例代码 :
<style type="text/css">
<!―
p { text-indent: 2em; }
body { font-family: "宋体"; font-size: 9pt; color: #000000; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px}
table { font-family: "宋体"; font-size: 9pt; line-height: 20px; color: #000000}
a:link { font-size: 9pt; color: #FFFFFF; text-decoration: none}
a:visited { font-size: 9pt; color: #99FFFF; text-decoration: none}
a:hover { font-size: 9pt; color: #FF9900; text-decoration: none}
a:active { font-size: 9pt; color: #FF9900; text-decoration: none}
a.1:link { font-size: 9pt; color: #3366cc; text-decoration: none}
a.1:visited { font-size: 9pt; color: #3366cc; text-decoration: none}
a.1:hover { font-size: 9pt; color: #FF9900; text-decoration: none}
a.1:active { font-size: 9pt; color: #FF9922; text-decoration: none}
.blue { font-family: "宋体"; font-size: 10.5pt; line-height: 20px; color: #0099FF; letter-spacing: 5em}
-->
</style>
这里尤其要注意的是a:link a:visited a:hover a:actived 的排列顺序一定要严格照上面的样例代码,否则或多或少会出问题。另外我们规定重定义的最先,伪类其次,自定义最后,便于自己和他人阅读!
为了保证不同浏览器上字号保持一致,字号建议用点数pt和像素px来定义,pt一般使用中文宋体的9pt和11pt,px一般使用中文宋体12px 和14.7px 这是经过优化的字号,黑体字或者宋体字加粗时,一般选用11pt和14.7px 的字号比较合适。
在写 <table> 互相嵌套时,严格按照的规范,对于单独的一个<table>来说,<table><tr>对齐,<td> 缩进两个半角空格,<td> 中如果还有嵌套的表格,<table>也缩进两个半角空格,如果<td>中没有任何嵌套的表格,</td> 结束标记应该与 <td> 处于同一行,不要换行,
如我们注意在源代码中不应有这样的代码:
<td><img src="http://www.pcwiki.net/Html/class4/2006-3/30/”../images/sample.gif"”>
</td>
而应该是这样的:
<td><img src="http://www.pcwiki.net/Html/class4/2006-3/30/”../images/sample.gif"”></td>
这是因为浏览器认为换行相当于一个半角空格,以上不规范的写法相当于无意中增加一个半角空格,如果确实有必要增加一个半角空格,也应该这样写:
<td><img src="http://www.pcwiki.net/Html/class4/2006-3/30/”../images/sample.gif"”> </td>
属于同一个级别 的 <table> 一定是左首对齐的,另外不允许没有任何内容的空的单元格存在,高度大于等于12px 的单元格应该 在 <td> 和 </td> 之间写一个 ,如果高度小于12px, 则应该 在 <td> 和 </td> 之间插入一个1*1 大小的透明的gif 图片,这是因为某些浏览器认为空单元格非法而不会予以解释。如果代码顺序较乱,在DW3中可以通过command->apply souce formatting进行重新整理!
5. Width 和height 的写法也有统一的规范,一般情况下只有一列的表格,width 写在<table> 的标签内,只有一行的表格,height 写在 <table> 的标签内,多行多列的表格,width 和height 写在第一行或者第一列的 <td> 标签内。总之遵循一条原则:不出现多于一个的控制同一个单元格大小的height 和width, 保证任何一个width 和height 都是有效的,也就是你改动代码中任何一个width 和height 的数值,都应该在浏览器中看到变化。做到这一条不容易,需要较长时间的练习和思考。
/一 般 原 则
1. 在排布表格之前,请大家一定要好好思考一个最佳的方案,表格的嵌套尽量控制在三层以内,并且应该尽量避免 <colspan> <rowspan> 两个标记,经验表明,这两个标记会带来许多麻烦。
2. 一个网页要尽量避免用整个一张大表格,所有的内容都嵌套在这个大表格之内,因为浏览器在解释页面的元素时,是以表格为单位逐一显示,如果一张网页是嵌套在一个大表格之内,那么很可能造成的后果就是,当浏览者敲入网址,他要先面对一片空白很长时间,然后所有的网页内容同时出现。如果必须这样做,请使用 <tbody>标记,以便能够使这个大表格分块显示。
3. 排版中我们经常会遇到需要进行首行缩进的处理,不要使用 或者全角空格来达到效果,规范的做法是在样式表中定义 p { text-indent: 2em; } 然后给每一段加上 <p> 标记,注意,一般情况下,请不要省略 </p> 结束标记 。
4. 原则上,我们禁止用 <img width=? height=?> 来人为干预图片显示的尺寸,而且建议 <img> 标签中不要带上width 和height 两个属性,这是因为制作过程中,图片往往需要反复的修改,这样可以避免人为干预图片显示的尺寸,尽可能的发挥浏览器自身的功能;但是这样的一个副作用是当网页还未加载图片时,不会留出图片的站位大小,可能会造成网页在加载过程中抖动(如果图片是插在一个固定大小的表格里的,不会有这个现象),尤其是当图片的尺寸较大时,这种现象会很明显,所以当预料到这种会明显导致网页抖动的情况会发生时,请大家务必在最后给 <img>附上 width 和 height 属性。
5. 为了最大程度的发挥浏览器自动排版的功能,在一段完整的文字中请尽量不要使用<br> 来人工干预分段。
6. 不同语种的文字之间应该有一个半角空格,但避头的符号之前和避尾的符号之后除外汉字之间的标点要用全角标点,英文字母和数字周围的括号应该使用半角括号。
7. 所有的字号都应该用样式表来实现,禁止在页面中出现 <font size=?> 标记。
8. 请不要在网页中连续出现多于一个的也尽量少使用全角空格(英文字符集下,全角空格会变成乱码),空白应该尽量使用 text-indent, padding, margin, hspace, vspace 以及透明的gif 图片来实现。
9. 中英文混排时,我们尽可能的将英文和数字定义为verdana 和arial 两种字体。
10. 行距建议用百分比来定义,常用的两个行距的值是line-height:120%/150%.
11. 网站中的路径全部采用相对路径,一般链接到某一目录下的缺省文件的链接路径不必写全名,如我们不必这样:<a href=”aboutus/index.htm”> 而应该这样:<a href=”aboutus/”>
12. 嵌入图形文本的使用较大的字体,建议不要在图形中包括文本。
13.“网页大小”定义为网页的所有文件大小的总和,包括HTML文件和所有的嵌入的对象。用户喜欢快的而不是新奇的站点。对于解调器用户,网页大小保持在34K以下为合适。
/文 件 命 名 原 则
1. 每一个目录中应该包含一个缺省的html 文件,文件名统一用index.htm
2.件名称统一用小写的英文字母、数字和下划线的组合。
3. 命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个文件的意义,二是当我们在文件夹中使用“按名称排例”的命令时,同一种大类的文件能够排列在一起,以便我们查找、修改、替换、计算负载量等等操作。
4. 下面以“新闻”(包含“国内新闻”和“国际新闻”)这个栏目来说明html 文件的命名原则 :
☆ 在根目录下开设news目 录
☆ 第一条缺省新闻取名index.htm
☆ 所有属于“国内新闻”的新闻依次取名为:china_1.htm, china_2.htm, …
☆ 所有属于“国际新闻”的新闻依次取名为:internation_1.htm, internation _2.htm, …
☆ 如果文件的数量是两位数,请将前九个文件命名为:china_01.htm, china_02.htm 以保证所有的文件能够在文件夹中正确排序。
5. 图片的命名原则遵循以下几条规范 :
☆ 名称分为头尾两两部分,用下划线隔开。
☆ 头部分表示此图片的大类性质,例如广告、标志、菜单、按钮等等。
☆ 一般来说:
放置在页面顶部的广告、装饰图案等长方形的图片我们取名:banner
标志性的图片我们取名为:logo
在页面上位置不固定并且带有链接的小图片我们取名为button
在页面上某一个位置连续出现,性质相同的链接栏目的图片我们取名:menu
装饰用的照片我们取名:pic
不带链接表示标题的图片我们取名:title
依照此原则类推。
☆ 尾部分用来表示图片的具体含义。
☆ 下面是几个样例,大家应该能够一眼看明白图片的意义:
banner_sohu.gif banner_sina.gif menu_aboutus.gif menu_job.gif
title_news.gif logo_police.gif logo_national.gif pic_people.jpg
pic_hill.jpg.