规范概述
目的
为提高团队协作效率,便于后台人员添加功能及前端后期优化维护,输出高质量的文档,特制订此文档。本规范文档一经确认,前端开发人员必须按本文档规范进行前台页面开发。本文档如有不对或者不合适的地方请及时提出,经讨论决定后方可更改。
准则
符合web标准,语义化html,结构表现行为分离,兼容性优良。页面性能方面,代码要求简洁明了有序,尽可能的减小服务器负载,保证最快的解析速度。
文件规范
基本要求
对页面中标签属性的值都需要用双引号包括起来
所有页面编码均采用utf-8
文件存放与命名规范
html,css,js,images文件均归档至《系统开发规范》约定的目录中;
html文件命名:英文命名,后缀.htm,同时将对应界面稿放于同目录中,并要求与html文件同名,以方便后端添加功能时查找对应页面;
css文件命名:英文命名,后缀.css,共用base.css,首页index.css,其他页面依实际模块需求命名;
js文件命名:英文命名,后缀.js,共用common.js,其他依实际模块需求命名。
html书写规范
文档类型声明及编码:统一为html5声明类型;编码统一为
,书写时利用IDE实现层次分明的缩进;
非特殊情况下样式文件必须外链至...之间;非特殊情况下JavaScript文件必须外链至页面底部;
引入样式文件或JavaScript文件时,须略去默认类型声明,写法如下:
引入JS库文件,路径或文件名须包含库名称及版本号及是否为压缩版,比如jquery-1.4.1.min.js;引入插件,文件名格式为库名称+插件名称,比如jQuery.cookie.js;
所有编码均遵循xhtml标准,标签、属性、属性命名必须由小写字母及下划线数字组成,且所有标签必须闭合,包括br (
), hr(
)等;属性值必须用双引号包括;
充分利用无兼容性问题的html自身标签,比如span、em、strong、optgroup、label,等等;需要为html元素添加自定义属性的时候,首先要考虑下有没有默认的已有的合适标签去设置,如果没有,可以使用须以"data-"为前缀来添加自定义属性,避免使用"data:"等其他命名方式;
语义化html,如标题根据重要性用h*(同一页面只能有一个h1),段落标记用p,列表用ul,内联元素中不可嵌套块级元素;
尽可能减少div嵌套,如:
完全可以用以下代码替代:
书写链接地址时,必须避免重定向,例如:href=,即须在URL地址后面加上“/”;
在页面中尽量避免使用style属性,即style="…";
必须为含有描述性表单元素(input,textarea)添加label,如:
姓 名:
须写成:
能以背景形式呈现的图片,尽量写入css样式中;
重要图片必须加上alt属性,重要的元素和截断的元素加上title;
给区块代码及重要功能(比如循环)加上注释,方便后台添加功能;
特殊符号使用:尽可能使用代码替代:比如<(<)、>(>)、空格( )等等;
class和id参见css书写规范。
css书写规范
编码统一为utf-8;
CSS的命名
外套:wrap
主导航:mainNav
子导航:subnav
页脚:footer
整个页面:content
页眉:header
页脚:footer
商标:label
标题:title
主导航:mainNav(globalNav)
顶导航:topnav
边导航:sidebar
左导航:leftsideBar
右导航:rightsideBar
旗志:logo
标语:banner
菜单内容1:menu1Content
菜单容量:menuContainer
子菜单:submenu
边导航图标:sidebarIcon
注释:note
面包屑:breadCrumb(即页面所处位置导航提示)
容器:container
内容:content
搜索:search
登陆:login
功能区:shop(如购物车,收银台)
当前的current
样式文件命名
主要的:master.css
布局版面:layout.css
专栏:columns.css
文字:font.css
打印样式:print.css
主题:themes.css
页头: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
class与id的使用:id是唯一的并是父级的,class是可以重复的并是子级的, 所以id仅使用在大的模块上,class可用在重复使用率高及子级中;
class与id命名:名称由小写英文、数字和下划线来组合命名,如zy_comment,fontred,width200;避免使用中文拼音,尽量使用简易的单词组合;总之,命名要语义化,简明化;
CSS书写范例
#headed{ }
.top{}
.top ul{ }
.top ul li{ }
.top ul li span{}
.top ul li img{ }
.top ul li a{}
.top ul li a:hover {}
………
css属性书写顺序,建议遵循:布局定位属性 -> 自身属性-> 文本属性-> 其他属性。此条可根据自身习惯书写,但尽量保证同类属性写在一起。属性列举:
布局定位属性主要包括:display、list-style、position(相应 的top,right,bottom,left)、float、clear、visibility、overflow;
自身属性主要包括:width、height、margin、padding、border、background;
文本属性主要包括:color、font、text-decoration、text-align、vertical-align、white-space;
其他属性:content;
以上列出的这些属性只是最常用到的,并不代表全部。
书写代码前,考虑并提高样式重复使用率;
充分利用html自身属性及样式继承原理减少代码量,比如:
这儿是标题列表2010-09-15
定义
ul.listli{position:relative}
ul.list lispan{position:absolute; right:0}
即可实现日期居右显示。
样式表中中文字体名,请务必转码成unicode码,以避免编码错误时乱码;
背景图片请尽可能使用sprite技术,减小http请求,考虑到多人协作开发,sprite按模块制作;
使用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, tabletd{padding:0;}
杜绝使用 兼容ie8
用png图片做图片时,要求图片格式为png-8格式,若png-8实在影响图片质量或其中有半透明效果,请为ie6单独定义背景,代码:
_background:none;
_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=crop, src=’img/bg.png’);
避免兼容性属性的使用,比如text-shadow、css3的相关属性;
减少使用影响性能的属性,比如position:absolute、float;
必须为大区块样式添加注释,小区块适量注释;
css默认设置
@charset"utf-8";
*{margin:0;padding:0;}
ul,ol,dl {list-style-type:none;}
前端部分:
<1> .页面框架使用CSS ID选择器
例:
Css: # header{}
<2> .ID 选择器内使用类选择器CLASS
例: