好的,以下是关于HTML、CSS和JavaScript文件开发规范的详细指南:
一、HTML开发规范
-
语义化标签
-
使用HTML5语义化标签(如
<header>、<nav>、<main>、<footer>)。 -
避免滥用
<div>,例如:html<!-- 推荐 --> <section> <h2>标题</h2> <p>内容</p> </section> <!-- 不推荐 --> <div class="section"> <div class="title">标题</div> <div class="content">内容</div> </div>
-
-
代码缩进
- 统一使用2个空格缩进,避免Tab键。
-
属性顺序
- 按重要性排序:
id>class>data-*>src/href>alt/title。
html<img id="logo" class="brand" data-info="company" src="logo.png" alt="Company Logo"> - 按重要性排序:
-
注释规范
-
模块注释:
html<!-- Header Start --> <header>...</header> <!-- Header End -->
-
二、CSS开发规范
-
命名规范
-
使用BEM(Block__Element--Modifier)命名法:
css.card__title { /* 块__元素 */ } .card--highlight { /* 块--修饰符 */ }
-
-
样式顺序
-
按功能分组:布局 > 盒模型 > 文本 > 视觉 > 动画。
css.button { /* 布局 */ display: inline-block; /* 盒模型 */ padding: 10px 20px; /* 文本 */ font-size: 16px; /* 视觉 */ background-color: #f00; /* 动画 */ transition: background 0.3s; }
-
-
避免嵌套过深
-
Sass/Less中嵌套不超过3层:
scss.card { &__title { /* OK */ } &:hover { .card__icon { /* 谨慎使用 */ } } }
-
-
响应式设计
-
使用移动优先(Mobile First)策略:
css/* 默认移动端样式 */ .container { width: 100%; } /* 桌面端适配 */ @media (min-width: 768px) { .container { width: 750px; } }
-
三、JavaScript开发规范
-
模块化
-
使用ES Modules或CommonJS:
javascript// ES Modules import { fetchData } from './api.js'; // CommonJS const utils = require('./utils');
-
-
变量命名
- 常量:
UPPER_CASE(如API_URL)。 - 类名:
PascalCase(如class UserProfile {})。 - 函数/变量:
camelCase(如getUserData())。
- 常量:
-
避免全局污染
-
使用IIFE(立即执行函数)或模块作用域:
javascript(function() { // 局部作用域 const localVar = 'safe'; })();
-
-
错误处理
-
异步操作使用
try/catch:javascriptasync function loadData() { try { const res = await fetch('/api/data'); } catch (error) { console.error('Fetch failed:', error); } }
-
四、通用规范
典型配置示例(.prettierrc文件):
json
{
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5"
}
ESLint
ESLint 是一个可插拔的JavaScript代码检查工具,主要功能包括:
常见使用场景:
示例工作流程:
这些优化措施可以显著降低资源体积,减少网络请求时间,提升页面加载性能。建议通过Lighthouse等工具定期检测网站性能指标,持续优化。
-
文件结构
project/ ├── assets/ │ ├── css/ │ ├── js/ │ └── images/ ├── index.html └── README.md -
代码格式化
Prettier
Prettier 是一个流行的代码格式化工具,支持多种编程语言(JavaScript、TypeScript、CSS、HTML、JSON等),主要特点包括:
-
自动化格式化:只需保存文件或运行命令,即可自动格式化代码
-
零配置选项:开箱即用,无需繁琐配置
-
强制一致性:消除团队成员间的代码风格争论
-
集成方式 :
- 编辑器插件(VS Code、WebStorm等)
- CLI命令行工具
- 作为Git pre-commit钩子使用
-
代码质量检查:识别潜在错误和不良实践
-
风格指南执行:强制执行团队约定的代码风格
-
高度可配置 :通过
.eslintrc文件自定义规则 -
自动修复:支持自动修复部分问题
-
与Prettier配合使用(通过
eslint-config-prettier避免规则冲突) -
在CI/CD流程中作为质量关卡
-
作为开发时的实时反馈工具
-
项目初始化时设置:在项目开始时就配置好格式化工具
-
团队统一配置:共享相同的配置文件(可通过npm包管理)
-
IDE集成 :
- 设置保存时自动格式化
- 安装对应的编辑器插件
-
Git集成 :
- 使用husky设置pre-commit钩子
- 配合lint-staged只对暂存文件进行检查
-
开发时编辑器实时提示问题
-
保存时自动格式化
-
提交代码前自动运行检查和格式化
-
CI流水线中再次验证代码风格
-
性能优化
性能优化是提升网站加载速度和用户体验的重要手段,主要包括以下几个方面:
-
CSS/JS压缩
-
使用构建工具(如Webpack)的optimization配置进行代码压缩
-
具体方法:
- 移除空格、注释等冗余字符
- 缩短变量名(混淆处理)
- 删除未使用的代码(Tree Shaking)
-
示例配置:
javascriptoptimization: { minimize: true, minimizer: [new TerserPlugin()], }
-
-
图片压缩
- 常用工具:
- TinyPNG(支持PNG/JPG格式)
- ImageOptim(Mac平台)
- Squoosh(Google开发的在线工具)
- 优化策略:
- 选择合适的图片格式(WebP优于JPG/PNG)
- 根据使用场景调整分辨率
- 使用响应式图片(srcset属性)
- 自动化方案:
- 使用Webpack的image-webpack-loader
- 配置自动压缩的CI/CD流程
- 常用工具:
-
其他优化手段
- 使用CDN加速静态资源
- 实现懒加载(Lazy Loading)
- 启用浏览器缓存(Cache-Control头部)
- 使用HTTP/2协议提升传输效率
五、注释规范
-
函数注释(JSDoc)
javascript/** * 计算两数之和 * @param {number} a - 第一个加数 * @param {number} b - 第二个加数 * @returns {number} 和 */ function sum(a, b) { return a + b; }
遵循以上规范可提升代码可读性、可维护性和团队协作效率。