常见的class命名

  • 布局类:header, footer, container, main, content, aside, page, section
  • 包裹类:wrap, inner
  • 区块类:region, block, box
  • 结构类:hd, bd, ft, top, bottom, left, right, middle, col, row, grid, span
  • 列表类:list, item, field
  • 主次类:primary, secondary, sub, minor
  • 大小类:s, m, l, xl, large, small
  • 状态类:active, current, checked, hover, fail, success, warn, error, on, off
  • 导航类:nav, prev, next, breadcrumb, forward, back, indicator, paging, first, - last
  • 交互类:tips, alert, modal, pop, panel, tabs, accordion, slide, scroll, overlay,
  • 星级类:rate, star
  • 分割类:group, seperate, divider
  • 等分类:full, half, third, quarter
  • 表格类:table, tr, td, cell, row
  • 图片类:img, thumbnail, original, album, gallery
  • 语言类:cn, en
  • 论坛类:forum, bbs, topic, post
  • 方向类:up, down, left, right
  • 其他语义类:btn, close, ok, cancel, switch; link, title, info, intro, more, icon; form, label, search, contact, phone, date, email, user; view, loading
  • 缩写类:主要针对的是单个单词的命名进行缩写,多个单词组合的命名不推荐缩写。例如:text缩写成txt,delete缩写成del等等。常见如下:
单词缩写说明
bottombtm底部
bottonbtn按钮
backgroundbg背景
contentcont内容
checkchk选择
currentcurr当前的
deletedel删除
texttxt文本
disableddis禁用
footft底部
headhd顶部
hiddenhide隐藏
inputinpinput框
imageimg图片
indexidx索引
messagemsg消息
passwordpwd密码
previousprev前面的、上一面
radiorad单选
registerreg注册
selectsel选择
tbodytbd表格主体
theadthd表格头部
tfoottft表格底部
wrapwp包装、外层

块(Block)的命名规范

  1. 块的名称和块的功能一致
  2. 块只能用Class选择器,不能用ID选择器,因为同一个块可能出现在页面的多个地方
  3. 块的内部是可以在包含多个子块
  4. 块名称用小写命名
  5. 例如:菜单应该命名为menu
类型块名类型块名
顶部topbar登录login
快速导航quickmenu登录login
导航nav搜索框searchbox
关键词keywords左边栏leftside
右边栏rightside内容content
左、右菜单left/rightmenu服务链接servicelink
服务service底栏footerbar
版权copyright注册register
新闻new新闻列表news
列表项item列表集合lists

元素(Element)的命名规范

  1. 元素的命名只能用于Class选择器
  2. 使用小写命名
  3. 元素的命名使用块名+元素名的组合方式,之间以中划线(-)隔开
  4. 块名-元素名,例如:菜单项的元素命名为menu-item
  5. 注意:此处的命名可以灵活运用,其实在项目中可以只使用-后面作为命名,在预编译嵌套比如scss中推荐使用,否则就得写很长的css避免冲突
类型元素名类型元素名
元素项-item元素头部-hd
元素标题-title元素内容-cont
元素底部-btm元素顶部-top
元素中部-middle元素左/右侧-left/right

制定简单规则

  • 以中划线连接,如.item-img
  • 使用两个中划线表示特殊化,如.item-img.item-img–small表示在.item-img的基础上特殊- 化
  • 状态类直接使用单词,参考上面的关键词,如.active, .checked
  • 图标以icon-为前缀(字体图标采用.icon-font.i-name方式命名)。
  • 模块采用关键词命名,如.slide, .modal, .tips, - .tabs,特殊化采用上面两个中划线表示,如.imgslide–full, .modal–pay, .tips–up, - .tabs–simple
  • js操作的类统一加上js-前缀
  • 不要超过四个class组合使用,如.a.b.c.d

修饰关键词

  1. 样式修饰符的命名只能用于Class选择器
  2. 使用小写命名
  3. 块或元素命名加上样式修饰符,之间用中划线(-)隔开
  4. 块或元素-样式修饰符,例如:某个按钮的宽度加宽,则该按钮的样式修饰符名为long,全名就为:ui-btn-long
类型修饰符名类型修饰符名
无上/下/左/右边框nobt/b/l/r无上/下/左/右 内边距nopt/b/l/r
无上/下/左/右 外边距nomt/b/l/r上/下/左/右 内边框pt/b/l/r-10(像素)
上/下/左/右 外边框mt/b/l/r-10(像素)字体颜色fc-red(颜色)
字体类型fm-arial(类型)字体大小fz-12(大小)
背景颜色bg-color字体加粗fw-blod
正常字体fz-normal文字下划线txt-underline
文字中划线txt-through文字居左/右/垂直居上/垂直居下/居中/垂直居中txt-l/r/t/b/c/m
绝对定位pos-abs相对定位pos-rel
宽度w-10(像素)高度h-10(像素)
行高lh-10(像素)边框宽度bw-2(像素)
上边框宽度btw-2(像素)下边框宽度bbw-2(像素)
左边框宽度blw-2(像素)右边框宽度brw-2(像素)
减短-short加长-long
变大-big缩小-small
向上/下/左/右-up/-down/-left/-right向前,上一个/向后,下一个-prev/-next
高级level-high中级level-middle
低级level-low文本缩进txt-in

行为修饰符

  1. 行为修饰符的命名只能用Class选择器
  2. 使用小写命名
  3. 块名或元素名加上行为修饰符,之间用中划线(-)隔开
  4. 块或元素名-行为修饰符,例如:修饰按钮在鼠标经过的事件,鼠标经过行为修饰符用-hover,所以全名为:ui-btn-hover
类型修饰符名类型修饰符名
鼠标经过-hover获取焦点-focus
失去焦点-blur鼠标按下-mousedown
键盘按下-keydown鼠标拖动-drag
不可用、禁用、只读-disabled可用、启用-enabled
选中(下拉框)-selected选中(选择框)-checked
成功-success失败-fail
错误-err警告-warning
当前状态-current显示-show
隐藏-hide添加-add
删除-del编辑-edit
阅读、视图-view返回-back
通过-pass未通过-nopass

图片格式

  • 前景透明:.png、.gif
  • 非透明背景:.jpg
  • 动画图片:.gif

拼图规范(雪碧图)

  • 基础组件(ui-step、ui-tab、ui-dropdown等)图片拼成一张图,命名为ui-icon
    (组件与组件之间应该有明显的分割间距,每个组件需要留出足够的空间,方便后期维护)
  • 所有按钮图标拼成一张图,命名为icon-btn
  • 所有(除基础组件和按钮以外)公共图标拼成一张图,命名为:icon
  • 所拼图文件大小建议控制在500KB内,以提高图片的下载速度

文件命名

  • 文件夹名:驼峰命名规则,首字母小写
  • 文件名:驼峰命名规则,首字母小写
  • 页面文件:驼峰命名规则,首字母小写
  • 背景图片:bg-name
  • 图标图片:ui-icon(基础或控件图标)、icon(公共图标)、icon-name(其他主题图标)、s-name(拼图图片)
  • Logo:logo-主题

Sass

命名规范

  • 变量采用所有字母小写,多个单词以中划线“-”隔开
  • 变量的定义后面尽量加上中文注释
  • 特殊模块的局部变量需要加上前缀,防止与全局变量冲突
  • 可共用的样式必须提炼到_mixin.scss文件中
  • %:占位符,用于处理没有参数的Sass片段,利用其不引用不解析的特点
  • mixin:混编,Sass代码段,可以传递参数
  • scss文件命名都统一以下划线”_”开头,main.scss除外(因类koala不能监测以_开头的文件)
  • plugin文件夹下,所有的插件scss文件名为:下划线”_”+插件名
  • Sass嵌套层级最好不要超过三级
  • Css的Class命名遵守BEM原则.
  • Compass实现拼图的功能要求:
  • 需要合并为一张图片应该放在同一个文件夹中
  • 图片名称不能包含数字、汉字等信息,否则编译不能通过

常用文件说明

  • public文件夹
  • _base.scss:引入的基础样式,以及全局样式
  • _variables:全局变量定义集合
  • _function.scss:函数定义集合,只存储与计算相关的
  • _mixin.scss:混编定义集合,存储%和@mixin定义的相关内容
  • plugin文件夹
  • 存储插件scss文件

Javascript

书写规范

  • 变量和函数名采用驼峰命名规范,首写字母小写
  • 常量全部使用大写,并以“_”连接单词
  • 尽量使用动词+名词的命名方式,如:”getList”、”setStyle”等
  • JQuery变量必须添加$前缀
  • 关键后空一格
  • 等号两边各空一格
  • 一行语句结束处必须添加“;”
  • 一行过长时,可以另起一行,但与前面的方法对齐,而不是与对象对齐
  • 声明变量或常量时使用Var关键字,防止变量或常量的全局污染
  • 字符串用单引号包裹,如:var myVarName = ‘Sam’
  • 实现鼠标经过效果,尽量采用Css的伪类:hover实现。

在页面引用的位置

如无特殊情况:所有的JS外部文件的引用应该放到Body标签的结束位置之间,防止页面载入时阻塞

避免在页面中嵌入Javascript代码

  • 避免的写法:
<button type="button" onclick="fnClick"></button>
  • 推荐的写法:
<button type="button" class="ui-btn" ></button>
//引用的外部是JS文件
$('.ui-btn').unbind().bind('click',function(){})

减少全局变量

尽量减少全局作用域的变量定义,变量应该包裹在他的业务作用域内。对于必须使用的全局变量,变量名应该以”g_”作为前缀。允许的条件,推荐使用const,let等es6中的变量。

各版本浏览器Hack

.all-IE{property: value\9;}
.IE-9{property: value\0/;}
.gte-IE-8{property: value\0/;}
.lte-IE-8{*property:value;}
.IE-7{+property:value;}
.IE-6{_property:value;}
/** Firefox浏览器 **/
@-moz-document url-prefix() {
.firefox{property:value;}
}
/** Opera浏览器 **/
@media all and (-webkit-min-device-pixel-ratio: 0) {
.webkit{property:value;}
}
@media all and (-webkit-min-device-pixel-ratio: 10000), not all and (-webkit-min-device-pixel-ratio: 0) {
.opera{property:value;}
}
/** Webkit内核浏览器(Safari、Chrome) **/
@media screen and (max-device-width: 480px) {
.iphone-webkit{property:value;

前端工程师基本套路

image


参考:https://blog.csdn.net/qq_35038153/article/details/79971637

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐