<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[杰然不同]]></title>
<link>http://www.jiezo.com/blog/</link>
<description><![CDATA[创造机会的人是勇者；等待机会的人是愚者]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[zj@jiezo.com(杰然不同)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>杰然不同</title>
	<url>http://www.jiezo.com/blog/images/logos.gif</url>
	<link>http://www.jiezo.com/blog/</link>
	<description>杰然不同</description>
</image>

			<item>
			<link>http://www.jiezo.com/blog/article.asp?id=1</link>
			<title><![CDATA[WEB前端开发规范文档 ]]></title>
			<author>zj@jiezo.com(ajie1017)</author>
			<category><![CDATA[Html+CSS]]></category>
			<pubDate>Sat,14 Jan 2012 00:59:59 +0800</pubDate>
			<guid>http://www.jiezo.com/blog/default.asp?id=1</guid>
		<description><![CDATA[无论是从技术角度还是开发视角，对于web前端开发规范文档都有一定规范，本文就css3和html5的发展前景总结了一系列的web开发文档，仅供大家参考。<br/><br/><br/>规范目的<br/><br/>为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进行前台页面开发. 本文档如有不对或者不合适的地方请及时提出, 经讨论决定后方可更改.<br/><br/>基本准则<br/><br/>符合web标准, 语义化html, 结构表现行为分离, 兼容性优良. 页面性能方面, 代码要求简洁明了有序, 尽可能的减小服务器负载, 保证最快的解析速度.<br/><br/>文件规范<br/><br/>1. html, css, js, images文件均归档至&lt;系统开发规范&gt;约定的目录中;<br/><br/>2. html文件命名: 英文命名, 后缀.htm. 同时将对应界面稿放于同目录中, 若界面稿命名为中文, 请重命名与html文件同名, 以方便后端添加功能时查找对应页面;<br/><br/>3. css文件命名: 英文命名, 后缀.css. 共用base.css, 首页index.css, 其他页面依实际模块需求命名.;<br/><br/>4. Js文件命名: 英文命名, 后缀.js. 共用common.js, 其他依实际模块需求命名.<br/><br/>html书写规范<br/><br/>1. 文档类型声明及编码: 统一为html5声明类型&lt;!DOCTYPE html&gt;; 编码统一为&lt;meta charset=”utf-8″ /&gt;, 书写时利用IDE实现层次分明的缩进;<br/><br/>2. 非特殊情况下样式文件必须外链至&lt;head&gt;…&lt;/head&gt;之间;非特殊情况下Javascri&#112;t文件必须外链至页面底部;<br/><br/>3. 引入样式文件或Javascri&#112;t文件时, 须略去默认类型声明, 写法如下:<br/><br/>&lt;link rel=”stylesheet” href=”…” /&gt;<br/><br/>&lt;style&gt;…&lt;/style&gt;<br/><br/>&lt;script src=”…”&gt;&lt;/script&gt;<br/><br/>4. 引入JS库文件, 文件名须包含库名称及版本号及是否为压缩版, 比如jquery-1.4.1.min.js; 引入插件, 文件名格式为库名称+插件名称, 比如jQuery.cookie.js;<br/><br/>5. 所有编码均遵循xhtml标准, 标签 &amp; 属性 &amp; 属性命名 必须由小写字母及下划线数字组成, 且所有标签必须闭合, 包括br (&lt;br /&gt;), hr(&lt;hr /&gt;)等; 属性值必须用双引号包括;<br/><br/>6. 充分利用无兼容性问题的html自身标签, 比如span, em, strong, optgroup, label,等等; 需要为html元素添加自定义属性的时候, 首先要考虑下有没有默认的已有的合适标签去设置, 如果没有, 可以使用须以”data-”为前缀来添加自定义属性，避免使用”data:”等其他命名方式;<br/><br/>7. 语义化html, 如 标题根据重要性用h*(同一页面只能有一个h1), 段落标记用p, 列表用ul, 内联元素中不可嵌套块级元素;<br/><br/>8. 尽可能减少div嵌套, 如&lt;div class=”box”&gt;&lt;div class=”welcome”&gt;欢迎访问XXX, 您的用户名是&lt;div class=”name”&gt;用户名&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;完全可以用以下代码替代: &lt;div class=”box”&gt;&lt;p&gt;欢迎访问XXX, 您的用户名是&lt;span&gt;用户名&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;;<br/><br/>9. 书写链接地址时, 必须避免重定向，例如：href=”<a href="http://itaolun.com/" target="_blank" rel="external">http://itaolun.com/</a>”, 即须在URL地址后面加上“/”；<br/><br/>10. 在页面中尽量避免使用style属性,即style=”…”;<br/><br/>11. 必须为含有描述性表单元素(input, textarea)添加label, 如&lt;p&gt;姓名: &lt;input type=”text” id=”name” name=”name” /&gt;&lt;/p&gt;须写成:&lt;p&gt;&lt;label for=”name”&gt;姓名: &lt;/label&gt;&lt;input type=”text” id=”name” /&gt;&lt;/p&gt;<br/><br/>12. 能以背景形式呈现的图片, 尽量写入css样式中;<br/><br/>13. 重要图片必须加上alt属性; 给重要的元素和截断的元素加上title;<br/><br/>14. 给区块代码及重要功能(比如循环)加上注释, 方便后台添加功能;<br/><br/>15. 特殊符号使用: 尽可能使用代码替代: 比如 &lt;(&lt;) &amp; &gt;(&amp;gt;) &amp; 空格( ) &amp; ?(?) 等等;<br/><br/>16. 书写页面过程中, 请考虑向后扩展性;<br/><br/>17. class &amp; id 参见 css书写规范.<br/><br/>css书写规范<br/><br/>1. 编码统一为utf-8;<br/><br/>2. 协作开发及分工: i会根据各个模块, 同时根据页面相似程序, 事先写好大体框架文件, 分配给前端人员实现内部结构&amp;表现&amp;行为; 共用css文件base.css由i书写, 协作开发过程中, 每个页面请务必都要引入, 此文件包含reset及头部底部样式, 此文件不可随意修改;<br/><br/>3. class与id的使用: id是唯一的并是父级的, class是可以重复的并是子级的, 所以id仅使用在大的模块上, class可用在重复使用率高及子级中; id原则上都是由我分发框架文件时命名的, 为Javascri&#112;t预留钩子的除外;<br/><br/>4. 为Javascri&#112;t预留钩子的命名, 请以 js_ 起始, 比如: js_hide, js_show;<br/><br/>5. class与id命名: 大的框架命名比如header/footer/wrapper/left/right之类的在2中由i统一命名.其他样式名称由 小写英文 &amp; 数字 &amp; _ 来组合命名, 如i_comment, fontred, width200; 避免使用中文拼音, 尽量使用简易的单词组合; 总之, 命名要语义化, 简明化.<br/><br/>6. 规避class与id命名(此条重要, 若有不明白请及时与i沟通):<br/><br/>a, 通过从属写法规避, 示例见d;<br/><br/>b, 取父级元素id/class命名部分命名, 示例见d;<br/><br/>c, 重复使用率高的命名, 请以自己代号加下划线起始, 比如i_clear;<br/><br/>d, a,b两条, 适用于在2中已建好框架的页面, 如, 要在2中已建好框架的页面代码&lt;div id=”mainnav”&gt;&lt;/div&gt;中加入新的div元素,<br/><br/>按a命名法则: &lt;div id=”mainnav”&gt;&lt;div class=”firstnav”&gt;…&lt;/div&gt;&lt;/div&gt;,<br/><br/>样式写法:&nbsp;&nbsp;#mainnav&nbsp;&nbsp;.firstnav{…….}<br/><br/>按b命名法则: &lt;div id=”mainnav”&gt;&lt;div class=”main_firstnav”&gt;…&lt;/div&gt;&lt;/div&gt;,<br/><br/>样式写法:&nbsp;&nbsp;.main_firstnav{…….}<br/><br/>7. css属性书写顺序, 建议遵循 布局定位属性–&gt;自身属性–&gt;文本属性–&gt;其他属性. 此条可根据自身习惯书写, 但尽量保证同类属性写在一起. 属性列举: 布局定位属性主要包括: margin　＆　padding　＆　float（包括clear）　＆　position（相应的 top,right,bottom,left）　＆　display　＆　visibility　＆　overflow等； 自身属性主要包括: width&nbsp;&nbsp;&amp;&nbsp;&nbsp;height&nbsp;&nbsp;&amp;&nbsp;&nbsp;background&nbsp;&nbsp;&amp;&nbsp;&nbsp;border; 文本属性主要包括：　font　＆　color　＆　text-align　＆　text-decoration　＆　text-indent等；其他属性包括: list-style(列表样式)　＆　vertical-vlign　＆　cursor　＆　z-index(层叠顺序) 　＆　zoom等. 我所列出的这些属性只是最常用到的, 并不代表全部;<br/><br/>8. 书写代码前, 考虑并提高样式重复使用率;<br/><br/>9. 充分利用html自身属性及样式继承原理减少代码量, 比如:<br/><br/>&lt;ul class=”list”&gt;&lt;li&gt;这儿是标题列表&lt;span&gt;2010-09-15&lt;/span&gt;&lt;/ul&gt;<br/><br/>定义<br/><br/>ul.list li{position:relative}&nbsp;&nbsp;ul.list li span{position:absolute; right:0}<br/><br/>即可实现日期居右显示<br/><br/>10. 样式表中中文字体名, 请务必转码成unicode码, 以避免编码错误时乱码;<br/><br/>11. 背景图片请尽可能使用sprite技术, 减小http请求, 考虑到多人协作开发, sprite按模块制作;<br/><br/>12. 使用table标签时(尽量避免使用table标签), 请不要用width/ height/cellspacing/cellpadding等table属性直接定义表现, 应尽可能的利用table自身私有属性分离结构与表现, 如thead,tr,th,td,tbody,tfoot,colgroup,scope; (cellspaing及cellpadding的css控制方法: table{border:0;margin:0;border-collapse:collapse;} table th, table td{padding:0;} , base.css文件中我会初始化表格样式)<br/><br/>13. 杜绝使用&lt;meta http-equiv=”X-UA-Compatible” content=”IE=7″ /&gt; 兼容ie8;<br/><br/>14. 用png图片做图片时, 要求图片格式为png-8格式,若png-8实在影响图片质量或其中有半透明效果, 请为ie6单独定义背景:<br/><br/>_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=crop, src=’img/bg.png’);<br/><br/>15. 避免兼容性属性的使用, 比如text-shadow || css3的相关属性;<br/><br/>16. 减少使用影响性能的属性, 比如position:absolute || float ;<br/><br/>17. 必须为大区块样式添加注释, 小区块适量注释;<br/><br/>18. 代码缩进与格式: 建议单行书写, 可根据自身习惯, 后期优化i会统一处理;<br/><br/>Javascri&#112;t书写规范<br/><br/>1. 文件编码统一为utf-8, 书写过程过, 每行代码结束必须有分号; 原则上所有功能均根据XXX项目需求原生开发, 以避免网上down下来的代码造成的代码污染(沉冗代码 || 与现有代码冲突 || …);<br/><br/>2. 库引入: 原则上仅引入jQuery库, 若需引入第三方库, 须与团队其他人员讨论决定;<br/><br/>3. 变量命名: 驼峰式命名. 原生Javascri&#112;t变量要求是纯英文字母, 首字母须小写, 如iTaoLun;<br/><br/>jQuery变量要求首字符为’_’, 其他与原生Javascri&#112;t 规则相同, 如: _iTaoLun;<br/><br/>另, 要求变量集中声明, 避免全局变量.<br/><br/>4. 类命名: 首字母大写, 驼峰式命名. 如 ITaoLun;<br/><br/>5. 函数命名: 首字母小写驼峰式命名. 如iTaoLun();<br/><br/>6. 命名语义化, 尽可能利用英文单词或其缩写;<br/><br/>7. 尽量避免使用存在兼容性及消耗资源的方法或属性, 比如eval() &amp; innerText;<br/><br/>8. 后期优化中, Javascri&#112;t非注释类中文字符须转换成unicode编码使用, 以避免编码错误时乱码显示;<br/><br/>9. 代码结构明了, 加适量注释. 提高函数重用率;<br/><br/>10. 注重与html分离, 减小reflow, 注重性能.<br/><br/>图片规范<br/><br/>1. 所有页面元素类图片均放入img文件夹, 测试用图片放于img/demoimg文件夹;<br/><br/>2. 图片格式仅限于gif || png || jpg;<br/><br/>3. 命名全部用小写英文字母 || 数字 || _ 的组合，其中不得包含汉字 || 空格 || 特殊字符；尽量用易懂的词汇, 便于团队其他成员理解; 另, 命名分头尾两部分, 用下划线隔开, 比如ad_left01.gif || btn_submit.gif;<br/><br/>4. 在保证视觉效果的情况下选择最小的图片格式与图片质量, 以减少加载时间;<br/><br/>5. 尽量避免使用半透明的png图片(若使用, 请参考css规范相关说明);<br/><br/>6. 运用css sprite技术集中小的背景图或图标, 减小页面http请求, 但注意, 请务必在对应的sprite psd源图中划参考线, 并保存至img目录下.<br/><br/>注释规范<br/><br/>1. html注释: 注释格式 &lt;!–这儿是注释–&gt;, ’–’只能在注释的始末位置,不可置入注释文字区域;<br/><br/>2. css注释: 注释格式 /*这儿是注释*/;<br/><br/>3. Javascri&#112;t注释, 单行注释使用’//这儿是单行注释’ ,多行注释使用 /* 这儿有多行注释 */;<br/><br/>开发及测试工具约定<br/><br/>建议使用Aptana || Dw || Vim , 亦可根据自己喜好选择, 但须遵循如下原则:<br/><br/>1. 不可利用IDE的视图模式’画’代码;<br/><br/>2. 不可利用IDE生成相关功能代码, 比如Dw内置的一些功能js;<br/><br/>3. 编码必须格式化, 比如缩进;<br/><br/>测试工具: 前期开发仅测试FireFox &amp; IE6 &amp; IE7 &amp; IE8 , 后期优化时加入Opera &amp; Chrome &amp; Safari;<br/><br/>建议测试顺序: FireFox–&gt;IE7–&gt;IE8–&gt;IE6–&gt;Opera–&gt;Chrome–&gt;Safari, 建议安装firebug及IE Tab Plus插件.<br/><br/>其他规范<br/><br/>1. 开发过程中严格按分工完成页面, 以提高css复用率, 避免重复开发;<br/><br/>2. 减小沉冗代码, 书写所有人都可以看的懂的代码. 简洁易懂是一种美德. 为用户着想, 为服务器着想.<br/>]]></description>
		</item>
		
</channel>
</rss>

