通用规范

一、文件规范

1、文件均归档至约定的目录中。

具体要求规范讲解:

所有的CSS分为两大类:通用类和业务类。通用的CSS文件,放在如下目录中:

  • · 基本样式库 /css/

业务类的CSS是指和具体产品相关的文件,放在如下目录中:

  • · 音乐 /css/music/

外联CSS文件适用于全站级和产品级通用的大文件。内联CSS文件适用于在一个或几个页面共用的CSS。另外一对具体的CSS进行文档化的整理。如:

  • · util-01 通用模块容器 /css/core/mod.css
  • · ui-01. 对话框 /css/core/dialog.css
  • · ui-02. 加载中 /css/lib/loading.css

2、文件引入可通过外联或内联方式引入。

  • · 外联方式:(类型声明type=”text/css”可以省略)
  • · 内联方式: (类型声明type=”text/css”可以省略)

link和style标签都应该放入head中,原则上,不允许在html上直接写样式。避免在CSS中使用@import,嵌套不要超过一层。

3、文件名、文件编码及文件大小

  • · 文件名必须由小写字母、数字、中划线组成
  • · 文件必须用UTF-8编码,使用UTF-8(非BOM),在HTML中指定UTF-8编码,在CSS中则不需要特别指定因为默认就是UTF-8。
  • · 单个CSS文件避免过大(建议少于500行)

二、注释规范

1、文件顶部注释(推荐使用)

  1. /*
  2. * @description: 中文说明
  3. * @author: name
  4. * @update: name (2013-04-13 18:32)
  5. */

复制代码

2、模块注释

  1. /* module: module1 by 张三 */
  2. /* module: module2 by 张三 */

复制代码

模块注释必须单独写在一行

3、 单行注释与多行注释

/* this is a short comment */

单行注释可以写在单独一行,也可以写在行尾,注释中的每一行长度不超过40个汉字,或者80个英文字符。

/*
* this is comment line 1.
* this is comment line 2.
*/

多行注释必须写在单独行内

4、特殊注释

/* TODO: xxxx by name 2013-04-13 18:32 */

/* BUGFIX: xxxx by name 2012-04-13 18:32 */

用于标注修改、待办等信息

5、区块注释

  1. /* Header */
  2. /* Footer */
  3. /* Gallery */

复制代码

对一个代码区块注释(可选),将样式语句分区块并在新行中对其注释。

三、命名规范

使用有意义的或通用的ID和class命名:ID和class的命名应反映该元素的功能或使用通用名称,而不要用抽象的晦涩的命名。反映元素的使用目的是首选;使用通用名称代表该元素不表特定意义,与其同级元素无异,通常是用于辅助命名;使用功能性或通用的名称可以更适用于文档或模版变化的情况。

  • · /* 不推荐: 无意义 */ #yee-1901 {}
  • · /* 不推荐: 与样式相关 */ .button-green {}.clear {}
  • · /* 推荐: 特殊性 */ #gallery {}#login {}.video {}
  • · /* 推荐: 通用性 */ .aux {}.alt {}

常用命名(多记多查英文单词):page、wrap、layout、header(head)、footer(foot、ft)、content(cont)、menu、nav、main、submain、sidebar(side)、logo、banner、title(tit)、popo(pop)、icon、note、btn、txt、iblock、window(win)、tips等

ID和class命名越简短越好,只要足够表达涵义。这样既有助于理解,也能提高代码效率。

  • · /* 不推荐 */ #navigation {}.atr {}
  • · /* 推荐 */ #nav {}.author {}

命名时需要注意的点:

  • · 规则命名中,一律采用大小写加中划线的方式使用驼峰命名发

列:firstName、lastName、FirstName、LastName

  • · 命名避免使用中文拼音,应该采用更简明有语义的英文单词进行组合
  • · 命名注意缩写,但是不能盲目缩写,具体请参见常用的CSS命名规则
  • · 不允许通过1、2、3等序号进行命名
  • · 避免class与id重名
  • · id用于标识模块或页面的某一个父容器区域,名称必须唯一,不要随意新建id
  • · class用于标识某一个类型的对象,命名必须言简意赅。
  • · 尽可能提高代码模块的复用,样式尽量用组合的方式
  • · 规则名称中不应该包含颜色(red/blue)、定位(left/right)等与具体显示效果相关的信息。应该用意义命名,而不是样式显示结果命名。

1、常用id的命名:

(1)页面结构

  • · 容器: container
  • · 页头:header
  • · 内容:content/container
  • · 页面主体:main
  • · 页尾:footer
  • · 导航:nav
  • · 侧栏:sidebar
  • · 栏目:column
  • · 页面外围控制整体布局宽度:wrapper
  • · 左右中:left right center

(2)导航

  • · 导航:nav
  • · 主导航:mainbav
  • · 子导航:subnav
  • · 顶导航:topnav
  • · 边导航:sidebar
  • · 左导航:leftsidebar
  • · 右导航:rightsidebar
  • · 菜单:menu
  • · 子菜单:submenu
  • · 标题: title
  • · 摘要: summary

(3)功能

  • · 标志:logo
  • · 广告:banner
  • · 登陆:login
  • · 登录条:loginbar
  • · 注册:regsiter
  • · 搜索:search
  • · 功能区:shop
  • · 标题:title
  • · 加入:joinus
  • · 状态:status
  • · 按钮:btn
  • · 滚动:scroll
  • · 标签页:tab
  • · 文章列表:list
  • · 提示信息:msg
  • · 当前的: current
  • · 小技巧:tips
  • · 图标: icon
  • · 注释:note
  • · 指南:guild
  • · 服务:service
  • · 热点:hot
  • · 新闻:news
  • · 下载:download
  • · 投票:vote
  • · 合作伙伴:partner
  • · 友情链接:link
  • · 版权:copyright

2、常用class的命名:

(1)颜色:使用颜色的名称或者16进制代码,如

  • · .red { color: red; }
  • · .f60 { color: #f60; }
  • · .ff8600 { color: #ff8600; }

(2)字体大小,直接使用”font+字体大小”作为名称,如

  • · .font12px { font-size: 12px; }
  • · .font9pt {font-size: 9pt; }

(3)对齐样式,使用对齐目标的英文名称,如

  • · .left { float:left; }
  • · .bottom { float:bottom; }

(4)标题栏样式,使用”类别+功能”的方式命名,如

  • · .barnews { }
  • · .barproduct { }

四、书写规范

1、排版规范

(1)使用4个空格,而不使用tab或者混用空格+tab作为缩进;

(2)规则可以写成单行,或者多行,但是整个文件内的规则排版必须统一;

单行形式书写风格的排版约束

  • · 如果是在html中写内联的css,则必须写成单行;
  • · 每一条规则的大括号 { 前后加空格 ;
  • · 每一条规则结束的大括号 } 前加空格;
  • · 属性名冒号之前不加空格,冒号之后加空格;
  • · 每一个属性值后必须添加分号; 并且分号后空格;
  • · 多个selector共用一个样式集,则多个selector必须写成多行形式 ;

多行形式书写风格的排版约束

  • · 每一条规则的大括号 { 前添加空格;
  • · 多个selector共用一个样式集,则多个selector必须写成多行形式 ;
  • · 每一条规则结束的大括号 } 必须与规则选择器的第一个字符对齐 ;
  • · 属性名冒号之前不加空格,冒号之后加空格;
  • · 属性值之后添加分号;

2、属性编写顺序

  • · 显示属性:display/list-style/position/float/clear …
  • · 自身属性(盒模型):width/height/margin/padding/border
  • · 背景:background
  • · 行高:line-height
  • · 文本属性:color/font/text-decoration/text-align/text-indent/vertical-align/white-space/content…
  • · 其他:cursor/z-index/zoom/overflow
  • · CSS3属性:transform/transition/animation/box-shadow/border-radius
  • · 如果使用CSS3的属性,如果有必要加入浏览器前缀,则按照 -webkit- / -moz- / -ms- / -o- / std的顺序进行添加,标准属性写在最后。
  • · 链接的样式请严格按照如下顺序添加: a:link -> a:visited -> a:hover -> a:active

3、规则书写规范

  • · 使用单引号,不允许使用双引号;
  • · 每个声明结束都应该带一个分号,不管是不是最后一个声明;
  • · 除16进制颜色和字体设置外,CSS文件中的所有的代码都应该小写;
  • · 除了重置浏览器默认样式外,禁止直接为html tag添加css样式设置;
  • · 每一条规则应该确保选择器唯一,禁止直接为全局.nav/.header/.body等类设置属性;

4、代码性能优化

  • · 合并margin、padding、border的-left/-top/-right/-bottom的设置,尽量使用短名称。
  • · 选择器应该在满足功能的基础上尽量简短,减少选择器嵌套,查询消耗。但是一定要避免覆盖全局样式设置。
  • · 注意选择器的性能,不要使用低性能的选择器。
  • · 禁止在css中使用*选择符。
  • · 除非必须,否则,一般有class或id的,不需要再写上元素对应的tag。
  • · 0后面不需要单位,比如0px可以省略成0,0.8px可以省略成.8px。
  • · 如果是16进制表示颜色,则颜色取值应该大写。
  • · 如果可以,颜色尽量用三位字符表示,例如#AABBCC写成#ABC 。
  • · 如果没有边框时,不要写成border:0,应该写成border:none 。
  • · 尽量避免使用AlphaImageLoader 。
  • · 在保持代码解耦的前提下,尽量合并重复的样式。
  • · background、font等可以缩写的属性,尽量使用缩写形式 。

5、CSS Hack的使用

请不用动不动就使用浏览器检测和CSS Hacks,先试试别的解决方法吧!考虑到代码高效率和易管理,虽然这两种方法能快速解决浏览器解析差异,但应被视为最后的手段。在长期的项目中,允许使用hack只会带来更多的hack,你越是使用它,你越是会依赖它!

推荐使用下面的:

6、字体规则

  • · 为了防止文件合并及编码转换时造成问题,建议将样式中文字体名字改成对应的英文名字,如:黑体(SimHei) 宋体(SimSun) 微软雅黑 (Microsoft Yahei,几个单词中间有空格组成的必须加引号)
  • · 字体粗细采用具体数值,粗体bold写为700,正常normal写为400
  • · font-size必须以px或pt、em为单位,推荐用px(注:pt为打印版字体大小设置),不允许使用xx-small/x-small/small/medium/large/x-large/xx-large等值
  • · 为了对font-family取值进行统一,更好的支持各个操作系统上各个浏览器的兼容性,font-family不允许在业务代码中随意设置

五、其他规范

  • · 不要轻易改动全站级CSS和通用CSS库。改动后,要经过全面测试。
  • · 避免使用filter
  • · 避免在CSS中使用expression
  • · 避免过小的背景图片平铺。
  • · 尽量不要在CSS中使用!important
  • · 绝对不要在CSS中使用”*”选择符
  • · 层级(z-index)必须清晰明确,页面弹窗、气泡为最高级(最高级为999),不同弹窗气泡之间可在三位数之间调整;普通区块为10-90内10的倍数;区块展开、弹出为当前父层级上个位增加,禁止层级间盲目攀比。
  • · 背景图片请尽可能使用sprite技术, 减小http请求, 考虑到多人协作开发, sprite按照模块、业务、页面来划分均可。

七、测试规范

1、了解浏览器特效支持

为了页面性能考虑,如果浏览器不支持CSS3相关属性的,则该浏览器的某些特效将不再支持,属性的支持情况如下表所示(Y为支持,N为不支持):

2、 设定浏览器支持标准

  • · A级-交互和视觉完全符全设计的要求
  • · B级-视觉上允许有所差异,但不破坏页面的整体效果
  • · C级-可忽略设计上的细节,但不防碍使用

公司内部规范

 

一、活动页,新增页命名规范

使用有意义的或通用的ID和class命名同时加行活动名首字母大写+中划线避免与官网通用样式重名。

  • · /* 不推荐 */ #mian {}.main{} .foot{}
  • · /* 推荐 */ #V-Mian {}.V-Mian {}.V-Foot{}

、图片压缩

图片大小尽量少200K,最大不得超过500K

Png 图片需要无损进行压缩处理,

压缩png图片地址: https://tinypng.com/

Jpg,gif 在做到清晰的情况下尽量压缩到最小,可以使用photoshop web模式导出或firework等工具进行压缩

wap端图片

Wap端图片需要用2倍尺寸进行缩小设置,预防在高分辨率手机下模糊的问题

  1. 1.   插图图片

插入图片直接用固定尺寸的方式进行缩放

  1. 2.   背景图片

用background-size 方式进行缩放

background-size:320px; background-size:100%;

  

四、图片命名规范

图片在Linux服务器下,大小写是有区分的,文件名中有大写,然后引用用小写,上传后出现问题。所以规范图片名称全小写。

转载于:https://www.cnblogs.com/shimily/articles/4360240.html

卡法电子商务 【前端开发 通用规范 通用规范】相关推荐

  1. 卡法电子商务 java_javacard DES算法API使用示例

    **********   2017年3月15日留言 --关于java卡Applet系列csdn博文 ************* 貌似有不少人在看我写的几篇关于java卡applet的博文,也收到了一些 ...

  2. 【卡法电子商务】-常用手机屏幕尺寸 ★★★★★

    iPhone4/iPhone4s   320 * 372 / 320 * 441 (已隐藏URL与状态栏) iPhone5/iPhone5s   320 * 460 / 320 * 529 (已隐藏U ...

  3. js初化加载页面时ajax会调用两次的原因_在前端开发中,有哪些因素会导致页面卡顿

    前端开发不像后端那样,很少出现有大量算法的场景,但是前端性能也是需要优化的.好的代码是保证网页平稳高性能运行的基础,结合以往开发中遇到的场景,本文对前端网页卡顿的原因进行了梳理和分析,并给出了对应的解 ...

  4. java代码开发的通用规范

    文章目录 前言 一.命名风格 二.变量定义 三.代码格式 四.OOP 规则 五. 集合处理 六.控制语句 七.注释规约 八.异常处理 九.编码检查 十.编码安全 十一.其他约定 十二.SqlServe ...

  5. Python前端开发

    Python前端开发 1.前端三剑客(HTML,CSS和JavaScript) 1.1 HTML 1.1.1 HTML简介 HyperText Mark-up Language, 指的是超文本标记语言 ...

  6. HTML5前端开发学习路线建议,学习前端的必备知识点

    Web前端开发工程师是一个很新的职业,是从事Web前端开发工作的工程师.主要进行网站开发,优化,完善的工作.网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览 ...

  7. Web前端开发面试考点指南

    Web 前端面试指南与高频考题解析指南 第一章 面试准备:简历编写和面试前准备 一般来说,跳槽找工作要经历投递简历.准备面试.面试和谈 offer 四个阶段.其中面试题目会因你的等级和职位而异,从入门 ...

  8. web前端是什么?如何能成为一名合格的前端开发工程师?

    对于刚刚接触前端,并且以后想从事前端开发行业的小伙伴们,肯定都有过这样的疑问,如何才能成为一名合格的前端开发工程师呢? 相信这个问题是所有刚刚准备入行的小伙伴们都比较关心的. 如果大家在一些搜索引擎上 ...

  9. 如何能成为一名合格的前端开发工程师?

    对于刚刚接触前端,并且以后想从事前端开发行业的小伙伴们,肯定都有过这样的疑问,如何才能成为一名合格的前端开发工程师呢? 相信这个问题是所有刚刚准备入行的小伙伴们都比较关心的. 如果大家在一些搜索引擎上 ...

最新文章

  1. Spring Boot 的配置文件
  2. 广州.NET 俱乐部第三次聚会成功举办。
  3. 表单验证AngularJs
  4. 扩频技术matlab仿真,基于Simulink的扩频通信仿真
  5. 只想问你一句:“伤害我,你会心疼吗?”
  6. Python调用seek(pos,mode)方法报错Can‘t do nonzero cur-relative seeks
  7. Restore系统极速还原软件的使用与说明
  8. 2017-09-20 前端日报
  9. c语言中isupper用法,C 库函数 – isupper() - C 教程 - 自强学堂
  10. PUN ☀️九、玩家网络实例化与昵称显示
  11. 华钜同创:拯救你的亚马逊销量!你需要知道这些技巧
  12. Qt Mainwindow添加/删除标题栏
  13. 实战goldengate:安装配置+数据初始化+单向DML复制
  14. 非极大值抑制算法(NMS)
  15. 鸿蒙系统安装电视猫,免费资源丰富 如何让智能电视物尽其用
  16. 【二开】【JeecgBoot】修改分页参数
  17. NVidia Maxwell GPU Tile-based 光栅化模式分析
  18. 微信支付重复调用解决方案
  19. 大众还是小众?谁在助力《复联3》连破票房纪录
  20. 工厂常用哪些ERP系统?主要功能有哪些?

热门文章

  1. 切图神器-cutterman
  2. 3dunet训练数据集
  3. 国家信息中心2020公开招聘考试须知
  4. GPE服务器监控系统搭建
  5. aiohttp mysql_aiohttp封装的爬虫小框架
  6. 铠侠推出全新BG6系列消费级固态硬盘,引领PCIe®4.0高性价比主流
  7. 每天学一点英文:Espresso 20210809
  8. 与MySQL零距离—子查询与连接
  9. 二维码生成免费API
  10. 数据报告:[数字健康]如何引发美国医疗深度变革