前端的开发规范

    xiaoxiao2022-07-02  111

    本文将从以下几个方面来概述前端的开发工作 1.目录构建规范 2.前端命名规范 3.前端工作规范 4.开发文档的书写规范

    前端目录构建规范

    1-1:命名原则:

    - 简洁明了(如下:) * src 源代码 * img 图片资源 * js JavaScript脚本 * dep(dependencies) 第三方依赖包 - 不使用复数(如下:) * 不使用 imgs docs 不规范的: imgs images styles 首页 购物车 javascripts ... 1-2:根目录(root)结构按职能划分 - src 源代码(逻辑) - doc 文档 - 后台接口文档 doc文件, 在线网页 - 当前项目的说明文档 - dep 第三方依赖包 - test 测试

    1-3:根据业务逻辑进行文件夹的划分

    - src目录名词解释: - common 公共资源 - public/static 静态资源 - component 组件 - view/tpl(template) 模板文件 ``` src common 公共资源 img logo.png sprites.png css reset.css js conf.js 项目的配置文件 public/static 静态资源 js css tpl index.html shopcar.html img component 组件( 就是html css js 等的一个聚合体 ) home shopcar login register user list detail view/tpl 项目模板 tpl 是 template的缩写

    1-4:总结 以上目录开发规范有两种使用途径 1.使用前端工程化工具如webpack.gulp等进行手动打造 2.利用框架提供的脚手架进行修改

    2前端命名规范

    这部分从以下两个方面来进行讲解 2.1 css命名规范: BEM规范 OOCSS规范 2.2javascript编写规范: jslint eslint 2.1.1BEM规范 概念: Block Element Modifier,它是一种前端命名方法,旨在帮助开发者实现模块化、可复用、高可维护性和结构化的CSS代码。

    BEM是定义了一种css class的命名规范,每个名称及其组成部分都是存在一定的含义。

    由拉丁字母, 数字, -组成css的单个名称.

    Block Element Modifier 独立且有意义的实体, e.g. header, container, menu, checkbox, etc.Block的一部分且没有独立的意义, e.g. header title, menu item, list item, etc.Blocks或Elements的一种标志,可以用它改变其表现形式、行为、状态. e.g. disabled, checked, fixed, etc.

    Naming

    由拉丁字母, 数字, -组成css的单个名称.

    Block

    使用简洁的前缀名字来命名一个独立且有意义的抽象块或组件。

    <!-- e.g. --> .block .header .site-search

    Element

    使用__连接符来连接Block 和 Element。

    <!-- e.g. --> .block__element .header__title .site-search__field

    Modifier

    使用–连接符来连接Block 或 Element 和 Modifier。

    <!-- e.g. --> .block--modifier .block__element--modifier .header--hide .header__title--color-red .site-search__field--disabled

    实例

    <!-- HTML文件 --> <form class="form form--theme-xmas form--simple"> <input class="form__input" type="text" /> <input class="form__submit form__submit--disabled" type="submit" /> </form> <!-- CSS --> .form {} .form--theme-xmas {} .form--simple {} .form__input { } .form__submit {} .form__submit--disabled {} Buttons实例 <!-- HTML文件 --> <button class="button"> Normal button </button> <button class="button button--state-success"> Success button </button> <button class="button button--state-danger"> Danger button </button> <!-- CSS文件中 --> .button { display: inline-block; border-radius: 3px; padding: 7px 12px; border: 1px solid #D5D5D5; background-image: linear-gradient(#EEE, #DDD); font: 700 13px/18px Helvetica, arial; } .button--state-success { color: #FFF; background: #569E3D linear-gradient(#79D858, #569E3D) repeat-x; border-color: #4A993E; } .button--state-danger { color: #900; }

    OOCSS规范

    概念 Object Oriented CSS,面向对象的CSS,旨在编写高可复用、低耦合和高扩展的CSS代码。 OOCSS是以面向对象的思想去定义样式,将抽象和实现分离,抽离公共代码。

    总结: 将重用的东西当做一个对象来看, 然后将不同的属性 放到另一个类名去 <!-- 举例: --> .list{ background: #fff; } .list--width{ width: 300px; }

    前端工作规范

    我们从 日报 、 周报以及邮件格式三个方面来了解 3-1:日报内容如下 上午你做了什么, 下午你做了什么, 遇到的什么问题?是否有解决? 明天的计划? 最后再内容最后面跟上日期 3-2:周报内容如下: 2016.07.25-2016.07.29周报:

    本周工作主要内容: 完成了宏视云h5播放器升级及大数据上报;修复xk-h5播放器bug:在三星手机自带浏览器无法进行滑动seek;admin-console后台管理系统初步完成终端访问页面和数据统计概览页面的制作; 工作中存在的主要问题: - webserver大数据展示页面移植到admin-console后台管理系统存在bootstrap与jquery.easyui冲突等几个兼容性问题; - 解决这个问题的思路可能不是最有效的方法,可能使用iframe会快些;使用iframe存在如何在easyui页面控制iframe页面及如何在浏览器窗口改变时,iframe也跟着改变等问题;下周工作计划: 完成上周未完成的admin-console大数据展示页面的制作;完成工作以后,如果有时间的话尝试下用iframe解决;询问师兄有没有可以帮忙做的工作;

    3.3 常用邮件格式如下:

    明确邮件发送谁? 参与者: 一定要想清楚, 如果不清楚, 记得问一下你直接上司(同事) 邮件的主题: 主题必须有且仅有一个必要时, 可以添加: 【请批阅】 、 等字眼 邮件正文 称呼要明确:条理分明 举例: 各位领导好: 一下内容是:xxx 请熟知/请批阅

    4.署名:

    什么部分 什么职位 什么姓名 什么时间 附件 需要说明附件是做什么的? 转发; 需要对原邮件进行说明。,然后写清楚自己的意图

    4. 开发文档的书写规范

    这部分内容从以下几个部分进行说明

    html规范css规范js规范

    4.1 html规范

    标签上属性的顺序建议如下: class ( class 是为高可复用组件设计的,所以应处在第一位) id name (id 更加具体且应该尽量少使用,所以将它放在第二位) data-* src for type href value placeholder title alt aria-* role required readonly disabledid/class 命名规则: BEM OOCSS SMACSS(扩展)注释规范(最好用英文) <div class="container"> <!-- header--start --> <header></header> <!-- header--end --> <!-- content--start --> <div class="content"> </div> <!-- content--end --> <!-- footer--start --> <footer> </footer> <!-- footer--end --> </div>

    4.2 css规范

    属性顺序 位置属性 ( position top right z-index display float etc.)大小 ( width height padding margin etc.)文字系列 ( font line-height letter-spacing color text-align ect.)背景 ( background border etc.)其他 ( animation transition etc.)以及注释的写法 <!-- 举例: --> .go--top{ position: fixed; right:20px; bottom: 50px; z-index: 1000; display:block; width: 50px; height: 200px; font-size: 16px; background: #ccc; opactiy: 0.5; transition: all 0.5s; <!-- 注释 --> }
    最新回复(0)