整 理:肖雅君、徐秀
时 间:2015-10-23
说 明:公司前端需遵守的项目规范
目录
第一节、 文档目录结构
第二节、 HTML书写规范
1、 声明和头部
2、 标签属性
第三节、 CSS书写规范
1、 外部引用样式
2、 格式化标签的默认样式:
3、 CSS书写规范
4、 CSS样式规范
第四节、 图像处理
1、 图像压缩
2、 图片格式
3、 Sprite雪碧图
第五节、 通用
1、 编码格式UTF-8
2、 书写小写
3、 去掉多余空格
4、 加注释
5、 特殊符号
6、 内部js代码的位置
附录:
参考链接:
第一节 、文档目录结构
|-- 前端项目名
|-- index.html /*存储HTML文件以及PHP文件*/
|-- styles
|-- images /*存储样式引入的图片,如公共图片*/
|-- style.css /*存储CSS样式文件,默认初始命名为style.css*/
|-- js /*存储js文件*/
|-- images /*存储<img>标签所用图片,一般为数据调取的图片*/
|-- global /*放置公共引用的模块,如多个页面引用的header和footer部分*/
第二节、HTML书写规范
1、声明和头部
1.1 PC端固定头部(公司统一)(见附录)
1.2 WAP端固定头部(公司统一)(见附录)
2、标签属性
2.1 缩进与换行
设置 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符与空格的混合。
2.2 闭合标签
所以的标签都必须闭合。非成对标记必须以“/>”结尾,且“/”前必须有一个空格,如<img />、<input />、<br />等。
2.3 标签语义化
如:<h1>到<h6>的定义,应遵循从大到小的原则,体现文档的结构,有利于搜索引擎的查询。
2.4 标签简洁化
标签的嵌套应尽量简洁,减少嵌套层次,减少不必要的的标签。
如:<!-- good -->
<img class="avatar" src="image.png" />
<!-- bad -->
<span class="avatar">
<img src="image.png">
</span>
2.5 类名或id名命名规则
(1)类名或id名命名要在保证通俗易懂的前提下尽量简洁。
(2)同一页面内,禁止使用相同的 name 与 id
2.6 连字符
id、class 命名必须单词全字母小写,class 命名单词间以“中划线”分隔;id 命名多个单词使用“下划线”连接。如<div class="goods-list"></div>。
2.7 布尔类型的属性
布尔类型的属性,不添加属性。如:<input type="text" disabled />
第三节、CSS书写规范
1、外部引用样式
所有的样式文件都写到css文件中,使用<link rel="stylesheet" href="styles/style.css" />引入到页面中。优先使用“外部样式表”,不建议使用内嵌样式,实际情况按后端需求。
2、格式化标签的默认样式:
2.1 PC端格式化样式(见附录)
2.2 WAP端格式化样式(见附录)
3、CSS项目书写规范
3.1 简洁型书写格式
实际项目中需压缩CSS样式,所以使用样式属性单行书写的格式,且去除多余空格。
样式紧接着选择器写,样式之间不能有空格,同一选择器的样式不换行。
3.2 写上父级类名
禁止使用*选择符。嵌套的类名很多的时候,需把父级也写上,当超过5个类名时可省略父级:如下
4、CSS样式规范
4.1 简化CSS属性
如font、margin、padding、border等。
<!-- bad -->
border-left:0;border-top:5px;border-right:0;border-bottom:5px;
<!--good -->
border:0 5px;
4.2 0和单位
(1)0后省略单位,非0数值必须加上单位。如:width:5px;height:0;
(2)属性值出现小数点忽略0,如:font-size:.8em;
4.3 a标签
a标签伪类书写要严格按照a:link,a:visited,a:hover,a:active的顺序,否则在某些浏览器中会失效。
4.4 简写颜色
如果不是为了制作半透明效果,颜色值必须使用十六进制记号形式 #rrggbb,颜色能简写的要简写,且颜色值使用小写字母。如:用{color:#f00;}代替{color#red;}和{color:#ff0000;}。
4.5 清浮动
在html中添加类名“.clearfix”,样式文件中添加代码
如:html中<div class="wrapper clearfix"></div>
CSS样式:
第四节、图像处理
1、图像压缩
所有图片必须经过一定的压缩和优化才能发布(压缩软件:PNGGauntlet可压缩PNG图片)。
2、图片格式
用png图片做图片时, 要求图片格式为png-24格式,用png-8为ie6单独定义背景。WAP端默认用png-24。
3、Sprite雪碧图
能用雪碧图的尽量做成雪碧图(CSS Sprite是一种将数个图片合成为一张大图的技术,既可以是背景图也可以是前景图)。在一个位置统一调用背景图片,然后通过偏移background-position来进行图像位置选取;
使用url()时忽略括号中的""。如:
第五节、通用
1、编码格式UTF-8
不管是HTML还是CSS文件,都统一采用UTF-8编码格式
2、书写小写
所有的html代码、CSS代码、颜色值等必须要用小写。
3、去掉多余空格
不管是html文件还是CSS文件,都不要有多余的空格。(sublime有插件能显示并一键删除所有多余空格:trailing Spaces)
(*注:以上演示图片中部分图片为了清楚的显示和对比样式,采用了换行显示,实际做项目时不能换行不能有空格。)
4、加注释
(1)给重要的区块加上注释,如:给重要图片加上 alt 标签。
(2) 给区块代码及重要功能(比如循环等),需在区块的开始或结尾添加注释。(另注释太多,在 ie6 下会有bug,故酌情添加。)
5、特殊符号
特殊符号使用代码替代,如<用<替代、>用>替代等。
6、内部js代码的位置
如果 js 文件只是要实现某些功能(比如点击按钮事件),那就在底部</body>前引入它。如:
<body>
<div>
</div>
<script>
</script>
</body>
附录:
1、PC端(公司统一)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="keyword" content="">
<meta name="description" content="">
<link rel="stylesheet" href="styles/style.css">
</head>
<body>
/* HTML代码 */
<script src="http://file2.ci123.com/ast/js/jquery_172.js"></script>
</body>
</html>
2、Wap端(公司统一)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="format-detection" content="telephone=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="stylesheet" href="styles/style.css">
</head>
<body>
/* HTML代码 */
<script src="http://file2.ci123.com/ast/js/zepto.js"></script>
</body>
</html>
3、PC端格式化样式
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{margin:0;padding:0}body,button,input,select,textarea{font-family:Arial,"Microsoft Yahei","Hiragino Sans GB","WenQuanYi Micro Hei",sans-serif;font-size:12px;}h1,h2,h3,h4,h5,h6{font-size:100%}address,cite,dfn,em,var{font-style:normal}ul,ol{list-style:none}sup{vertical-align:text-top}sub{vertical-align:text-bottom}legend{color:#000}fieldset,img{border:0}button,input,select,textarea{font-size:100%}table{border-collapse:collapse;border-spacing:0}a{text-decoration:none;}a:link,a:visited{color:#000;text-decoration:none;}a:hover{color:#c00;text-decoration:underline}img{border:0;-ms-interpolation-mode:bicubic}.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.clearfix{*zoom:1;clear:both;}* html>body .clearfix{display:inline-block;width:100%}* html .clearfix{/*\*/height:1%;/**/}*+html .clearfix{min-height:1%}
4、WAP端格式化样式
body{padding:0;margin:0;font-size:14px;font-family:Arial;}h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{margin:0;padding:0;}dl,dt,dd,ul,li,ol{list-style:none;}img{border:0;}.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden} .clearfix{clear:both;}table{border-collapse:collapse;border-spacing:0;}
参考链接:
公司后台前端开发文档:
http://abc.ci123.com/admin/tech/shareexp/list.php?cpage=4
HTML编码规范:http://blog.geekman.vip/archives/353
CSS编码规范:http://blog.geekman.vip/archives/352