保险箱移动端之web前端基础规范

文件编码约定

所有文件统一采用UTF-8无BOM编码。

文件和目录命名约定

一律小写,必须是英文单词或者汉语拼音,以英语单词优先,多个单词以连字符 ( - ) 连接。只能出现小写引文字母,数字和连字符。

很多浏览器会将含有这些词的作为广告拦截: ad、ads、adv、banner、sponsor、gg、guangg、guanggao等 页面中尽量避免采用以上词汇来命名。

该命令规范适用于所有前端维护的内容和相关目录

标签语义化 html5元素

section 表示文档中的节、区段,可以和h1-h6一起来显示文档结构

article 表示一块比较独立的内容或者主题内容,块级元素,比如blog的内容,报纸的文章

aside 表示article以外的内容,而且应该和article有一定的关系,块级元素

hgroup 表示一个文档、区段(section)的标题组合

header 表示页眉,页头

footer 表示页脚

nav 表示导航内容

figure 表示以相对独立的或外引的元素,如img video

figcaption 表示 figure内容的标题

id和class命名约定

id 和 class 的命名基本原则:内容优先,表现为辅。首先根据内容来命名,如:#header,#footer,.main-nav.如根据内容无法找到合适的命名,可以再结合表现进行命名,如:col-main,col-sub,col-extra,blue-box

id 和 class 的名称一律小写,多个单词以连字符连接,如:main-wrap

id 和 class 的名称只能出现,小写字母,数字和连字符( - )(js钩子除外)

id 和 class 的名称尽量使用英文单词命名,如确实找不到合适的单词,可以使用拼音,如:zhidao-com

在不影响语意的情况下,id 和 class 的名称 可以适当使用缩写,如:col,nav,hd,bd,fd(缩写只用来表示结构,不允许写任何样式)。不要自造缩写。

class 对于选中命名.selected;对于hover,支持伪类使用:hover,不支持的使用.hover,隐藏使用.hide。

id 和 class 的选择,如果只使用一次,使用id,如果使用多次使用class,如果需要和js交互,使用id,如果需要交互并且页面中有大量重复,请参见下一条。

对于作为js钩子的 id 和 class 命名规则为以”J_“开头或者以"-hook"结尾(J,象形钩子的形状),加上原应有的命名,在使用class的时候需要放在最前面。如:class="J_tab-content some-mod-content"。(注意:钩子,不允许在css中定义任何的样式效果)

很多浏览器会将含有这些词的作为广告拦截:ad、ads、adv、banner、sponsor、gg、guangg、guanggao等 页面中尽量避免采用以上词汇来命名。

CSS约定

1.页面中不允许出现css内容(包括行内样式和style)

2.避免使用通配规则

除了传统意义的通配选择符之外还包括相邻兄弟选择符, 子选择符, 后代选择符和属性选择符。推荐id、class和标签选择符。

3.不要限定id选择符

页面中指定一个id只能对应一个元素,所以没有必要添加额外添加限定符,如:div#header,应该简化为:#header(提权的除外)。

4.不要限定类选择器

不要用具体的标签限定类选择符,而是根据实际情况对类名进行扩展。例如:ul.recommend,改成.recommend-list或者.list-recommend。

5.让规则越具体越好

尽量不要使用ul li a这样长的选择符,最好使用.list-anchor之类的选择符。

6.避免使用后代选择符

通常处理后代选择符开销最高,使用字选择符更高效,最好使用下一条代替。

7.避免使用标签子选择符

如果有如:#header > li > a,这样基于子标签的自选择符,那么应该使用一个class来关联每个元素如:.header-anchor。尽量使用具体的类代替子选择符。


JavaScript约定

1.函数和变量的命名

驼峰命名方式

2.常量

大写

3.文件注释

文件注释要标明作者、文件版本、创建/修改时间、重大版本修改记录

函数描述

文件版本、创建或者修改时间、功能、作者

4.在if判断中,使用===作比较,避免掉入==造成的陷阱,对于不同类型的==判断,有这样一些规则,顺序自上而下:

1.undefined与null相等

2.一个是number一个是string时,会尝试将string转换为number

3.尝试将boolean转换为number,0或1

4.尝试将Object转换成number或string,取决于另外一个对比量的类型

简单类型转换

number to string的转换,建议使用1 + ''或String(1),不使用new String(1)或1.toString()的方式。

string to number的转换,建议使用parseInt,必须显式指定第二个参数的进制。下面的例子展示了不指定进制的风险:

parseInt('08');// 0   parseInt('08',10);//8

float to integer的转换,建议使用Math.floor/Math.round/Math.ceil方法,不使用parseInt。

字符串拼接

字符串拼接,应使用数组保存字符串片段,使用时调用join方法。避免使用+或+=的方式拼接较长的字符串,每个字符串都会使用一个小的内存片段,过多的内存片段会影响性能。

零散想到的

img 请勿将img元素作为定位布局的工具,不要用他显示空白图片; 必要时给img元素增加alt属性;

自己写的z-index的值不能超过 100 (通用组的除外),需要按照内容定义1 2 3 4不允许直接使用如1000,9999


以上如有不对之处请指出。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,573评论 18 399
  • 通用规范 tab键用两个空格代替 因为在不同系统的编辑工具对tab解析不一样,windows下的tab键是占四个空...
    米塔塔阅读 413评论 0 7
  • 通用规范 tab键用两个空格代替 因为在不同系统的编辑工具对tab解析不一样,windows下的tab键是占四个空...
    戈薇薇阅读 466评论 0 1
  • 大年初三,我继续躺在床上用手机敲下这些文字,因为身体原因,今年我还没有出门,还没有看到过小区门口挂的大红灯笼,也没...
    笨小洁阅读 774评论 2 2