前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合

    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础

    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习

    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他

    • Handbook
    • 职场话题
    • CSS可视化
  • 框架文档

    • React
    • Vue3
    • Vite
    • Svelte
    • Angular
    • NodeJS
    • Egg
    • Nest
    • Koa
    • Express
    • Electron
    • Ionic
    • Taro
    • Uniapp
    • React Native
    • Webpack
    • Rollup
    • Jquery API
    • Bootstrap
    • Axios
    • Lodash
    • RXJS
    • Sequelize
    • TypeORM
    • Mongoose
    • GraphQL
    • Puppeteer
    • Sass
    • Less
    • Umi4
    • Miniprogram
  • 文档教程

    • Cheatsheets
    • Devdocs有可能是全球最全的文档库
    • Overapi
    • JavaScript 标准参考教程
    • ES6 入门教程
    • MDN在线文档
    • Typscript中文文档
    • JavaScript Promise迷你书(中文版)
    • Canvas API中文
    • Git中文手册
    • 云开发Cloudbase
    • Serverless中文文档
  • UI组件

    • Ant Design React
    • Ant Design Vue
    • Ant Design Pro
    • ProComponents
    • 腾讯Tdesign
    • NutUI京东风格的轻量级移动端 Vue 组件库
    • Semantic UI Vue
    • Cube UI Vue滴滴
    • Iview UI
    • 有赞Vant Vue3
    • 有赞Vant 小程序
    • Element UI Vue3
  • 可视化

    • Antv
    • Bizcharts
    • Threejs
    • D3js
    • Highcharts
    • Echarts
  • 配置相关

    • ESLint
    • Babel
    • Nginx中文文档
    • Github Action中文
    • Docker官方文档
    • Jenkins官方文档
  • 后端相关

    • Spring官方文档中文版
    • Spring Boot官方文档
    • Spring Cloud官方文档
    • Java8官方文档
    • maven官方文档
    • Tomcat 8官方文档
    • Kafka中文文档
    • MyBatis中文文档
    • RabbitMQ中文文档
    • Dubbo中文文档
    • Netty官方文档
    • Elasticsearch官方文档
    • K8S官方文档
  • 实用工具

    • 在线正则表达式调试工具
    • 在线正则表达式可视化
    • 常用正则表达式大全
    • 可以在线看代码流程的网站:loupe
    • 在线MD5编码工具
    • 在线JWT解码工具
    • 在线JSON解析
    • 在线文本比对
    • 在线JS代码格式化
    • 在线SQL压缩格式化
    • 在线XML压缩格式化
    • 在线时间戳转化工具
    • 在线RGB颜色转化工具
    • 在线HTTP在线接口测试工具
    • 在线IP地址查询
    • 在线菜鸟综合导航工具
  • 在线编程

    • MipCode快速的在线代码创作工具
    • Codepen
    • Jsbin
    • CodeSandBox在线快速学习React/Vue
    • Vue SFC Playground
    • Vue3 模板在线解析查看编译结果
    • Svelte Playground
    • 在线尝试Babel编译
    • Typescript在线编译
    • AST可视化编辑
    • 在线尝试Rollup打包
    • Prettier Playground
    • Stackblitz基于VSCODE的WEBIDE
    • NPM Runkit在浏览器中快速学习及尝试Node.js模块
    • Play with Docker在线体验
  • CSS相关

    • 用来帮助大家查找CSS的相关属性的语法,以及使用方法
    • 提供了CSS相关属性的浏览器兼容表,同时提供了对应属性资源
    • Flex在线动态练习
    • 贝塞尔曲线生成工具
    • SCSS在线转CSS
    • Clip-path在线生成器
    • Animate.css动画效果
    • 按需定制CSS动画效果
    • 一份清单,按字母表顺序列出了每个CSS属性
    • CSS按钮生成器
    • Css3按钮动画
    • CSS3渐变样式生成器,类似Photoshop中的渐变界面
    • CSS3 Maker可在线演示渐变阴影旋转动画并生成代码
    • CSS3 Tool非常方便的生成背景渐变、阴影、旋转和边框圆角效果
    • SVG背景生成
    • 多张图片合成雪碧图
    • 汇集了实现各种加载效果的CSS代码片段
    • SVG滤镜
    • HTML5 元素标签含义大全(元素周期表)
    • HTML语义化
    • KakaCss快速生成Css样式,在任意网站复制内容,再到本页面Ctrl+V
    • CSS参考手册
    • 各种各样的loading效果
    • CSS shadow generator
    • 通过拖拽的形式生成需要的border radius
    • 花式半径生成器-通过拖拽的形式生成需要的border radius
    • cssgrid-generator
  • 综合

    • 可视化学习算法网站
    • 在线Nginx配置
    • React生命周期查看网站
    • CodeFun设计稿智能生成源代码
    • Imgcook由设计稿一键智能生成代码的大厨
  • 创作必备

    • 在线画图processon
    • Draw.io免费的流行的流程图工具
    • 在线思维导图mindline
    • 在线字数统计
    • 在线mardown排版
    • 在线免费图床
    • 在线代码截图carbon
    • 在线短链生成
    • 在线文本替换
    • 在线文件压缩
    • 在线多媒体转换器
    • 在线PDF转化工具SmallPdf
    • 在线任意文件的格式转换Convertio
    • 在线PS工具
    • 在线抠图工具
    • LOGO在线制作
    • 在线制作海报设计工具
    • Open source icons
    • 表情包在线网站
    • 图片智能放大工具
    • ICO图标在线生成
    • 视频转GIF工具
    • 音频在线处理
    • 多图合成GIF工具
    • 在线图片压缩工具
    • Pixabay图片素材库
    • Unsplash图片素材库
    • Pexels图片素材库
小程序题库
公众号动态
博客动态
前端导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合

    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础

    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习

    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他

    • Handbook
    • 职场话题
    • CSS可视化
  • 框架文档

    • React
    • Vue3
    • Vite
    • Svelte
    • Angular
    • NodeJS
    • Egg
    • Nest
    • Koa
    • Express
    • Electron
    • Ionic
    • Taro
    • Uniapp
    • React Native
    • Webpack
    • Rollup
    • Jquery API
    • Bootstrap
    • Axios
    • Lodash
    • RXJS
    • Sequelize
    • TypeORM
    • Mongoose
    • GraphQL
    • Puppeteer
    • Sass
    • Less
    • Umi4
    • Miniprogram
  • 文档教程

    • Cheatsheets
    • Devdocs有可能是全球最全的文档库
    • Overapi
    • JavaScript 标准参考教程
    • ES6 入门教程
    • MDN在线文档
    • Typscript中文文档
    • JavaScript Promise迷你书(中文版)
    • Canvas API中文
    • Git中文手册
    • 云开发Cloudbase
    • Serverless中文文档
  • UI组件

    • Ant Design React
    • Ant Design Vue
    • Ant Design Pro
    • ProComponents
    • 腾讯Tdesign
    • NutUI京东风格的轻量级移动端 Vue 组件库
    • Semantic UI Vue
    • Cube UI Vue滴滴
    • Iview UI
    • 有赞Vant Vue3
    • 有赞Vant 小程序
    • Element UI Vue3
  • 可视化

    • Antv
    • Bizcharts
    • Threejs
    • D3js
    • Highcharts
    • Echarts
  • 配置相关

    • ESLint
    • Babel
    • Nginx中文文档
    • Github Action中文
    • Docker官方文档
    • Jenkins官方文档
  • 后端相关

    • Spring官方文档中文版
    • Spring Boot官方文档
    • Spring Cloud官方文档
    • Java8官方文档
    • maven官方文档
    • Tomcat 8官方文档
    • Kafka中文文档
    • MyBatis中文文档
    • RabbitMQ中文文档
    • Dubbo中文文档
    • Netty官方文档
    • Elasticsearch官方文档
    • K8S官方文档
  • 实用工具

    • 在线正则表达式调试工具
    • 在线正则表达式可视化
    • 常用正则表达式大全
    • 可以在线看代码流程的网站:loupe
    • 在线MD5编码工具
    • 在线JWT解码工具
    • 在线JSON解析
    • 在线文本比对
    • 在线JS代码格式化
    • 在线SQL压缩格式化
    • 在线XML压缩格式化
    • 在线时间戳转化工具
    • 在线RGB颜色转化工具
    • 在线HTTP在线接口测试工具
    • 在线IP地址查询
    • 在线菜鸟综合导航工具
  • 在线编程

    • MipCode快速的在线代码创作工具
    • Codepen
    • Jsbin
    • CodeSandBox在线快速学习React/Vue
    • Vue SFC Playground
    • Vue3 模板在线解析查看编译结果
    • Svelte Playground
    • 在线尝试Babel编译
    • Typescript在线编译
    • AST可视化编辑
    • 在线尝试Rollup打包
    • Prettier Playground
    • Stackblitz基于VSCODE的WEBIDE
    • NPM Runkit在浏览器中快速学习及尝试Node.js模块
    • Play with Docker在线体验
  • CSS相关

    • 用来帮助大家查找CSS的相关属性的语法,以及使用方法
    • 提供了CSS相关属性的浏览器兼容表,同时提供了对应属性资源
    • Flex在线动态练习
    • 贝塞尔曲线生成工具
    • SCSS在线转CSS
    • Clip-path在线生成器
    • Animate.css动画效果
    • 按需定制CSS动画效果
    • 一份清单,按字母表顺序列出了每个CSS属性
    • CSS按钮生成器
    • Css3按钮动画
    • CSS3渐变样式生成器,类似Photoshop中的渐变界面
    • CSS3 Maker可在线演示渐变阴影旋转动画并生成代码
    • CSS3 Tool非常方便的生成背景渐变、阴影、旋转和边框圆角效果
    • SVG背景生成
    • 多张图片合成雪碧图
    • 汇集了实现各种加载效果的CSS代码片段
    • SVG滤镜
    • HTML5 元素标签含义大全(元素周期表)
    • HTML语义化
    • KakaCss快速生成Css样式,在任意网站复制内容,再到本页面Ctrl+V
    • CSS参考手册
    • 各种各样的loading效果
    • CSS shadow generator
    • 通过拖拽的形式生成需要的border radius
    • 花式半径生成器-通过拖拽的形式生成需要的border radius
    • cssgrid-generator
  • 综合

    • 可视化学习算法网站
    • 在线Nginx配置
    • React生命周期查看网站
    • CodeFun设计稿智能生成源代码
    • Imgcook由设计稿一键智能生成代码的大厨
  • 创作必备

    • 在线画图processon
    • Draw.io免费的流行的流程图工具
    • 在线思维导图mindline
    • 在线字数统计
    • 在线mardown排版
    • 在线免费图床
    • 在线代码截图carbon
    • 在线短链生成
    • 在线文本替换
    • 在线文件压缩
    • 在线多媒体转换器
    • 在线PDF转化工具SmallPdf
    • 在线任意文件的格式转换Convertio
    • 在线PS工具
    • 在线抠图工具
    • LOGO在线制作
    • 在线制作海报设计工具
    • Open source icons
    • 表情包在线网站
    • 图片智能放大工具
    • ICO图标在线生成
    • 视频转GIF工具
    • 音频在线处理
    • 多图合成GIF工具
    • 在线图片压缩工具
    • Pixabay图片素材库
    • Unsplash图片素材库
    • Pexels图片素材库
小程序题库
公众号动态
博客动态
前端导航
前端开发的一些实践规范
首页
2016-11-23 16:55:24
Front-End
规则实践

# 一、HTML实践


  • 使用标准的HTML5简化的定义的方式
    • 定义文档类型 <!DOCTYPE html>
    • 定义页面的编码 <meata charset="UTF-8">
    • 样式和页脚的引用,不需要写type类型,如link script
  • 停止使用不标准的标签和属性,如mqrquee
  • 不推荐在HTML标签中添加样式属性,如img标签中添加宽高
  • 不要使用@import,此方式最大的缺点是引用css文件不能同时并行下载
  • 增加JavaScript禁用的提示信息,最常用的方式是使用<noscript>
  • 添加必要的meta标签
  • 使用频率较高的语义化标签
    • p ul dl p em strong table site blockquote
    • nav header footer article section aside hground
  • 样式和结构的分离:把HTML中用于表达外观的部分从HTML中删除,并用css实现。如<span>|</span>中的| 用css的伪类实现即可
  • 如果图片作为页面内容的一部分,应该使用img标签,如果图片仅仅是装饰作用,应该使用背景图片方式
  • 提高表单易用性的手段
    • 使用label标签,并设置label标签的for属性
    • 给输入控件设置合理的placehoder
    • 如有必要,给输入控件设置tab顺序,tabindex用来设置输入控件的切换顺序 <input type="text" tabindex="2">
    • 使用HTML5中引入的表单控件url email date search
  • 精简HTML代码
  • 删除多余的容器
  • 装饰性的元素使用css实现
  • 避免使用table布局

# 二、CSS实践


  • 推荐的css类的命名规则和元素的id命名规则相似,只是组成类名的关键字的连接符为中划线- .reder-content-title
    • 为了避免class命名的重复,命名时取父元素的class作为前缀
  • 使用css reset统一浏览器的显示效果
  • 给css样式定义排序,最佳是按类型分组排序
  • 显示与浮动、定位、尺寸、边框相关属性、字体样式、背景、其他样式
  • 合理利用css的权重,提高代码的重用性
    • css样式中尽量不要使用ID选择器,最佳实践尽可能使用较低权重的选择器作为基础样式
    • 减少自选择器的层级
    • 使用组合的css选择器
  • em px %
    • w3c把尺寸单位分为相对长度单位和绝对长度单位两种。
    • 相对长度单位又分为字体相对单位和视窗相对单位
      • 字体相对单位包括:em ex ch rem
      • 视窗相对单位包括:vw vh vmin vmax
      • 使用最广泛的是em px 百分比
    • em计算是相对自身元素的字体尺寸的,rem相对于根元素的字体大小计算, 百分比是相对于父元素的尺寸的
    • 如何设置元素的尺寸和字体大小最佳实践
      • 尽量设置相对尺寸(局部的尺寸要尽量使用相对尺寸,即局部自适应)
      • 只有在可预知元素尺寸的情况下才使用绝对尺寸
      • 使用em设置字体大小
  • css选择器定义最佳实践
    • 避免使用通配符
    • 避免使用标签选择器及单个属性选择器作为关键选择器
    • 不要在id选择器前使用标签名
    • 尽量不要使在选择符中定义过多的层级,最好不要超过三层
  • css相关图片处理
    • 不要设置图片尺寸
    • 使用css雪碧图技术
  • 减少css代码量
    • 定义简洁的css规则
    • 合并相关的css规则
    • 定义简洁的属性值合并相同的定义

# 三、JavaScript实践


  • 避免定义全局变量或函数
    • 使用var
    • 使用JavaScript的严格模式use strict;
  • 使用简化的编码方式
    • 对象创建pserson={age:22,name:"poetries"}
    • 数组创建list=[12,23,55]
  • 使用===和!==而不是==和!=
  • 避免使用with语句和eval()
  • 使用更严格的编码格式
    • 使用严格模式遵循:
      • 不要在全局中启用严格模式
      • 在已有代码中谨慎使用严格模式
    • 严格模式主要对不合理的地方做了改进
      • 禁用width关键字
      • 防止意外的全局变量
      • 函数中的this不在默认指向全局
      • 防止函数参数重命名
      • 更安全的使用eval()
  • 事件处理和业务逻辑相分离
  • 配置数据和代码逻辑相分离
  • 逻辑与结构相似相分离
    • 从JavaScript逻辑中分离css样式
    • 从JavaScript中分离HTML结构
  • JavaScript模块化的开发,提高代码的可维护性
    • JavaScript的两种模块化规范 ComonJS AMD
    • 两者的主要区别在加载模块的方式上
    • ComonJS 以同步的方式加载,使用require()方法来加载模块
    • AMD以异步的方式加载模块
  • 合理使用Ajax技术,适合的使用场景有
    • 前端会根据用户的需求动态取得后端数据,然后更新网页界面
    • 期望通过不刷新页面取得任何资源或页面
    • 动态进行用户输入的认证

# 四、附录


# 附录一 DIV命名规范


  • 企业DIV

    fe
    Preview
    • 一、HTML实践
    • 二、CSS实践
    • 三、JavaScript实践
    • 四、附录
      • 附录一 DIV命名规范
      • 附录二 CSS精灵
      • 附录三 一些tips解决方案
        • 页面优化实践
        • 写DIV+CSS 的一些常识
        • 常用代码片段
        • 一些总结

    ← Ajax总结篇bootstrap笔记总结 →