🗂 一份完美的前端开发清单——专为现代网站和追求极致的开发者打造
See the code前端开发清单是一份在站点/HTML页面发布到生产环境之前需要测试的所有元素的详尽列表。
它基于前端开发人员多年的经验沉淀,以及其他优秀的开源清单。
前端开发清单中的所列出的点是大部分前端项目所必需的关注的, 但某些元素可以省略或者并不是这么重要 (在管理Web应用程序的情况下,你可能并不需要RSS订阅源)。我们选择使用一下3级区分:
某些资源拥有特定的标识符,帮助你去理解清单上不同类型的内容或帮助。
注意: 你能在HEAD列表中找到HTML文档
<head>标签内所有可配置的属性。
<!-- 声明文档为 HTML5 类型 -->
<!doctype html>
下列两个 meta 标签需要首先声明在head中:Charset 和 Viewport。*
Charset(字符): 正确声明
Charset meta (UTF-8)。
<!-- 设置文档的字符编码 -->
<meta charset="utf-8">
viewport meta。<!-- 响应式网页设计viewpoint声明 -->
<meta name="viewport" content="width=device-width, initial-scale=1">
title标签(SEO:Google会计算标题中使用的字符的像素宽度,范围在472和482像素之间,所以平均字符数限制大约在55个字符左右)。<!-- 文档标题 -->
<title>网站标题不超过55个字符</title>
description标签, 它是唯一的,且内容不能超过150个字符。<!-- Meta Description -->
<meta name="description" content="Description of the page less than 150 characters">
favicon都被创建并正确显示,如果你只有一个favicon.ico,把它放在你网站的根目录下。 通常来说你不需要做任何操作他就能正常显示。 然而, 使用一下示例中的方法是比较好的做法。不过现在我们推荐使用PNG格式,相比.ico格式有较好的优势(推荐尺寸: 32x32px)。<!-- 标准favicon -->
<link rel="icon" type="image/x-icon" href="https://example.com/favicon.ico">
<!-- 推荐favicon格式 -->
<link rel="icon" type="image/png" href="https://example.com/favicon.png">
<!-- (创建至少200x200像素尺寸的Apple图标文件以支持你可能需要的用到的所有尺寸) -->
<link rel="apple-touch-icon" href="/custom-icon.png">
<!-- 设置Web应用程序是否以全屏模式运行。 -->
<meta name="apple-mobile-web-app-capable" content="yes">
<!-- 设置状态栏样式(有关其可用值,请参见下面的“苹果设备支持的Meta标记列表”) -->
<!-- 除非您具有先前的Meta标签,否则本Meta标签无效 -->
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<!-- Microsoft Tiles -->
<meta name="msapplication-config" content="browserconfig.xml" />
browserconfig.xml文件的最小所需xml标记如下所示:
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square70x70logo src="small.png"/>
<square150x150logo src="medium.png"/>
<wide310x150logo src="wide.png"/>
<square310x310logo src="large.png"/>
</tile>
</msapplication>
</browserconfig>
rel="canonical"以避免重复的内容。<!-- 帮助防止重复内容出现 -->
<link rel="canonical" href="http://example.com/2017/09/a-new-article-to-red.html">
<html lang="zh_cn">
direction属性规定元素内容的文本方向。(可以在另一个HTML标签上使用)<html dir="rtl">
<link rel="alternate" href="https://es.example.com/" hreflang="es">
<link rel="alternate" href="https://example.com/" hreflang="x-default" />
RSS feed(RSS 订阅): 如果你的项目是一个博客或者有大量的文章,可以添加一个RSS链接。
CSS Critical(最小 CSS 合集):
CSS critical收集并呈现当前页面可见部分的核心CSS。在主要的CSS调用渲染之前以单行(最小化)在<style></style>中嵌入。
强烈推荐Facebook OG and Twitter Cards。如果你针对某些特定的存在并希望确保显示,也可以考虑其他社交媒体的meta。
注意: 使用
og:image:width和og:image:height将会爬取制定尺寸的图像,以便图像能够快速呈现,无需进行异步下载和处理。
<meta property="og:type" content="website">
<meta property="og:url" content="https://example.com/page.html">
<meta property="og:title" content="Content Title">
<meta property="og:image" content="https://example.com/image.jpg">
<meta property="og:description" content="Description Here">
<meta property="og:site_name" content="Site Name">
<meta property="og:locale" content="en_US">
<!-- Next tags are optional but recommended -->
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@site_account">
<meta name="twitter:creator" content="@individual_account">
<meta name="twitter:url" content="https://example.com/page.html">
<meta name="twitter:title" content="Content Title">
<meta name="twitter:description" content="Content description less than 200 characters">
<meta name="twitter:image" content="https://example.com/image.jpg">
- 📖 推特卡片使用入门 — Twitter Developers
- 🛠 使用Twitter card validator测试你的页面。
📖 HTML 参考
Error pages(错误页面): 404页面和5xx错误页面的存在。记得在5xx错误页面中集成CSS样式文件(在当前服务器上无外部调用)。
Noopener: 如果你使用外部链接
target="_blank", 你的链接必须有个rel="noopener"属性,防止制表符的隐藏。如果你需要兼容旧版本的火狐浏览器,请使用rel="noopener noreferrer"。
Desktop Browsers: 所有页面都在桌面浏览器上通过测试(Safari, Firefox, Chrome, Internet Explorer, EDGE...)。
Mobile Browsers: 所有页面都在移动端浏览器上通过测试(Native browser, Chrome, Safari...).
Link checker(链接检查器): 页面中链接没有失效,请确认你没有404错误。
注意: 使用webfonts可能会导致文档样式闪烁以及文本不可见,所以在使用时需要考虑使用后备字体,或者使用webfont加载器来控制字体加载行为。
Webfont size(字体大小): Webfont大小不超过 2 MB (包括所有版本在内)。
Webfont loader(字体加载器): 使用Webfont加载器控制加载行为。
- 📖 Reset.css
- 📖 Normalize.css
- 📖 Reboot
<div id="js-slider" class="my-slider">
<!-- Or -->
<div id="id-used-by-cms" class="js-slider my-slider">
响应式网页设计: 所有页面都需要经过以下几种情况的测试: 320px, 768px, 1024px (根据自己的项目情况,可以设置更多)。
CSS验证器: CSS都需经过测试,同时所有错误都被修复。
🛠 CSS验证器
注意: 想要完整的了解图像优化,可以在Addy Osmani查看免费电子书**图像优化基础**。
- 🛠 Imagemin
- 🛠 使用ImageOptim免费优化您的图像。
- 🛠 使用KeyCDN Image Processing for image optimization in real time.
- 🛠 使用Kraken.io png和jpg优化的绝佳替代品。 免费计划每个文件最大1mb。
- 🛠 TinyPNG 无损优化png,apng(动画png)和jpg图像。 提供免费和付费版本。
- 🛠 ZorroSVG 使用svg遮罩的类似jpg的压缩形式的透明图像。
- 🛠 SVGO 基于Nodejs的工具,用于优化SVG矢量图形文件。
- 🛠 SVGOMG 基于SVGO的基于Web的GUI版本,可在线优化您的svg。
<img> 必须有alt属性来直观的描述图片(在无障碍网页中尤其重要)。.min 后缀)。noscript 标签: <noscript> 标签以在客户端不支持JavaScript时提供其他展示, 一个使用示例.<noscript>
您需要启用JavaScript才能运行此应用。
</noscript>
<html>标签中添加class。 懒加载: 图片、js脚本和CSS需要懒加载,以提高当前页面的响应时间(请参见各自部分的详细信息)。
Cookie大小: 如果使用Cookie,确保每个Cookie不超过4096个字节,并且域名下不超过20个Cookie。
dns-prefetch让第三方DNS服务商主动去执行域名解析的功能。<link rel="dns-prefetch" href="https://example.com">
preconnect在空闲期间提前做好DNS查询, TCP三次握手和TLS协商。<link rel="preconnect" href="https://example.com">
prefetch在空闲期间提前请求即将需要的资源(例如:图像的懒加载)。<link rel="prefetch" href="image.png">
preload提前加载当前页面所需要的资源(例如:js脚本放在<body>的最后)。<link rel="preload" href="app.js">
注意: 查看注意事项视频列表A11ycasts with Rob Dodson 📹
label与每个输入表单元素相关联,如果label无法显示,请使用aria-label代替。 Baidu Analytics: Baidu Analytics 正确安装和配置(国内网站)。
Headings logic: 标题文字有助于表达当前页面的主要内容。
sitemap.xml文件并提交到Google Search Console(以前的Google管理员工具)。robots.txt正确配置,不要阻止网页被爬取。
- 📖 The robots.txt file
- 🛠 使用Google Robots Testing Tool测试你的
robots.txt。
- 📖 Structured Data 简介 | 搜索 | Google Developers
- 📖 RDFa - Linked Data in HTML
- 📖 JSON-LD
- 📖 Microdata
- 🛠 使用Structured Data Testing Tool测试你的页面。
- 🛠 适用于结构化数据的完整结构列表Schema.org Full Heirarchy
rel="prev" and rel="next" to indicate paginated content.<!-- Example: Pagination link tags for page 2 of a paginated list -->
<link rel="prev" href="https://example.com/?page=1">
<link rel="next" href="https://example.com/?page=3">
这份“前端开发清单”同样被翻译为如下语言版本,感谢所有翻译者的热情贡献!
如果想标示出你的项目遵循了这份“前端开发清单”的各项规定,欢迎将如下徽章放在你的项目的README文件上!
[](https://github.com/thedaviddias/Front-End-Checklist/)
提issue或提交合并请求以建议更改或添加。
前端开发清单 项目有两个分支:
master该分支包含README.md,内容会自动映射到前端开发清单。
网站上。
develop这个分支将用于对结构和内容进行一些重大更改。不过最好还是使用主分支来修复小错误或添加新项目。
如果您有任何问题或建议,可以通过Gitter或Twitter联系我们:
感谢以下人员对本项目的贡献 [Contribute]。
感谢所有赞助我们的朋友! 🙏 [成为支持者]
通过成为赞助商来支持这个项目。您的徽标将显示在这里,并链接到您的网站。 [成为赞助商]
27 followers · starred Jun 2020
110 followers · starred Jan 2018
22 followers · starred Apr 2024
38 followers · starred Jul 2018
🗂 一份完美的前端开发清单——专为现代网站和追求极致的开发者打造
See the code前端开发清单是一份在站点/HTML页面发布到生产环境之前需要测试的所有元素的详尽列表。
它基于前端开发人员多年的经验沉淀,以及其他优秀的开源清单。
前端开发清单中的所列出的点是大部分前端项目所必需的关注的, 但某些元素可以省略或者并不是这么重要 (在管理Web应用程序的情况下,你可能并不需要RSS订阅源)。我们选择使用一下3级区分:
某些资源拥有特定的标识符,帮助你去理解清单上不同类型的内容或帮助。
注意: 你能在HEAD列表中找到HTML文档
<head>标签内所有可配置的属性。
<!-- 声明文档为 HTML5 类型 -->
<!doctype html>
下列两个 meta 标签需要首先声明在head中:Charset 和 Viewport。*
Charset(字符): 正确声明
Charset meta (UTF-8)。
<!-- 设置文档的字符编码 -->
<meta charset="utf-8">
viewport meta。<!-- 响应式网页设计viewpoint声明 -->
<meta name="viewport" content="width=device-width, initial-scale=1">
title标签(SEO:Google会计算标题中使用的字符的像素宽度,范围在472和482像素之间,所以平均字符数限制大约在55个字符左右)。<!-- 文档标题 -->
<title>网站标题不超过55个字符</title>
description标签, 它是唯一的,且内容不能超过150个字符。<!-- Meta Description -->
<meta name="description" content="Description of the page less than 150 characters">
favicon都被创建并正确显示,如果你只有一个favicon.ico,把它放在你网站的根目录下。 通常来说你不需要做任何操作他就能正常显示。 然而, 使用一下示例中的方法是比较好的做法。不过现在我们推荐使用PNG格式,相比.ico格式有较好的优势(推荐尺寸: 32x32px)。<!-- 标准favicon -->
<link rel="icon" type="image/x-icon" href="https://example.com/favicon.ico">
<!-- 推荐favicon格式 -->
<link rel="icon" type="image/png" href="https://example.com/favicon.png">
<!-- (创建至少200x200像素尺寸的Apple图标文件以支持你可能需要的用到的所有尺寸) -->
<link rel="apple-touch-icon" href="/custom-icon.png">
<!-- 设置Web应用程序是否以全屏模式运行。 -->
<meta name="apple-mobile-web-app-capable" content="yes">
<!-- 设置状态栏样式(有关其可用值,请参见下面的“苹果设备支持的Meta标记列表”) -->
<!-- 除非您具有先前的Meta标签,否则本Meta标签无效 -->
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<!-- Microsoft Tiles -->
<meta name="msapplication-config" content="browserconfig.xml" />
browserconfig.xml文件的最小所需xml标记如下所示:
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square70x70logo src="small.png"/>
<square150x150logo src="medium.png"/>
<wide310x150logo src="wide.png"/>
<square310x310logo src="large.png"/>
</tile>
</msapplication>
</browserconfig>
rel="canonical"以避免重复的内容。<!-- 帮助防止重复内容出现 -->
<link rel="canonical" href="http://example.com/2017/09/a-new-article-to-red.html">
<html lang="zh_cn">
direction属性规定元素内容的文本方向。(可以在另一个HTML标签上使用)<html dir="rtl">
<link rel="alternate" href="https://es.example.com/" hreflang="es">
<link rel="alternate" href="https://example.com/" hreflang="x-default" />
RSS feed(RSS 订阅): 如果你的项目是一个博客或者有大量的文章,可以添加一个RSS链接。
CSS Critical(最小 CSS 合集):
CSS critical收集并呈现当前页面可见部分的核心CSS。在主要的CSS调用渲染之前以单行(最小化)在<style></style>中嵌入。
强烈推荐Facebook OG and Twitter Cards。如果你针对某些特定的存在并希望确保显示,也可以考虑其他社交媒体的meta。
注意: 使用
og:image:width和og:image:height将会爬取制定尺寸的图像,以便图像能够快速呈现,无需进行异步下载和处理。
<meta property="og:type" content="website">
<meta property="og:url" content="https://example.com/page.html">
<meta property="og:title" content="Content Title">
<meta property="og:image" content="https://example.com/image.jpg">
<meta property="og:description" content="Description Here">
<meta property="og:site_name" content="Site Name">
<meta property="og:locale" content="en_US">
<!-- Next tags are optional but recommended -->
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@site_account">
<meta name="twitter:creator" content="@individual_account">
<meta name="twitter:url" content="https://example.com/page.html">
<meta name="twitter:title" content="Content Title">
<meta name="twitter:description" content="Content description less than 200 characters">
<meta name="twitter:image" content="https://example.com/image.jpg">
- 📖 推特卡片使用入门 — Twitter Developers
- 🛠 使用Twitter card validator测试你的页面。
📖 HTML 参考
Error pages(错误页面): 404页面和5xx错误页面的存在。记得在5xx错误页面中集成CSS样式文件(在当前服务器上无外部调用)。
Noopener: 如果你使用外部链接
target="_blank", 你的链接必须有个rel="noopener"属性,防止制表符的隐藏。如果你需要兼容旧版本的火狐浏览器,请使用rel="noopener noreferrer"。
Desktop Browsers: 所有页面都在桌面浏览器上通过测试(Safari, Firefox, Chrome, Internet Explorer, EDGE...)。
Mobile Browsers: 所有页面都在移动端浏览器上通过测试(Native browser, Chrome, Safari...).
Link checker(链接检查器): 页面中链接没有失效,请确认你没有404错误。
注意: 使用webfonts可能会导致文档样式闪烁以及文本不可见,所以在使用时需要考虑使用后备字体,或者使用webfont加载器来控制字体加载行为。
Webfont size(字体大小): Webfont大小不超过 2 MB (包括所有版本在内)。
Webfont loader(字体加载器): 使用Webfont加载器控制加载行为。
- 📖 Reset.css
- 📖 Normalize.css
- 📖 Reboot
<div id="js-slider" class="my-slider">
<!-- Or -->
<div id="id-used-by-cms" class="js-slider my-slider">
响应式网页设计: 所有页面都需要经过以下几种情况的测试: 320px, 768px, 1024px (根据自己的项目情况,可以设置更多)。
CSS验证器: CSS都需经过测试,同时所有错误都被修复。
🛠 CSS验证器
注意: 想要完整的了解图像优化,可以在Addy Osmani查看免费电子书**图像优化基础**。
- 🛠 Imagemin
- 🛠 使用ImageOptim免费优化您的图像。
- 🛠 使用KeyCDN Image Processing for image optimization in real time.
- 🛠 使用Kraken.io png和jpg优化的绝佳替代品。 免费计划每个文件最大1mb。
- 🛠 TinyPNG 无损优化png,apng(动画png)和jpg图像。 提供免费和付费版本。
- 🛠 ZorroSVG 使用svg遮罩的类似jpg的压缩形式的透明图像。
- 🛠 SVGO 基于Nodejs的工具,用于优化SVG矢量图形文件。
- 🛠 SVGOMG 基于SVGO的基于Web的GUI版本,可在线优化您的svg。
<img> 必须有alt属性来直观的描述图片(在无障碍网页中尤其重要)。.min 后缀)。noscript 标签: <noscript> 标签以在客户端不支持JavaScript时提供其他展示, 一个使用示例.<noscript>
您需要启用JavaScript才能运行此应用。
</noscript>
<html>标签中添加class。 懒加载: 图片、js脚本和CSS需要懒加载,以提高当前页面的响应时间(请参见各自部分的详细信息)。
Cookie大小: 如果使用Cookie,确保每个Cookie不超过4096个字节,并且域名下不超过20个Cookie。
dns-prefetch让第三方DNS服务商主动去执行域名解析的功能。<link rel="dns-prefetch" href="https://example.com">
preconnect在空闲期间提前做好DNS查询, TCP三次握手和TLS协商。<link rel="preconnect" href="https://example.com">
prefetch在空闲期间提前请求即将需要的资源(例如:图像的懒加载)。<link rel="prefetch" href="image.png">
preload提前加载当前页面所需要的资源(例如:js脚本放在<body>的最后)。<link rel="preload" href="app.js">
注意: 查看注意事项视频列表A11ycasts with Rob Dodson 📹
label与每个输入表单元素相关联,如果label无法显示,请使用aria-label代替。 Baidu Analytics: Baidu Analytics 正确安装和配置(国内网站)。
Headings logic: 标题文字有助于表达当前页面的主要内容。
sitemap.xml文件并提交到Google Search Console(以前的Google管理员工具)。robots.txt正确配置,不要阻止网页被爬取。
- 📖 The robots.txt file
- 🛠 使用Google Robots Testing Tool测试你的
robots.txt。
- 📖 Structured Data 简介 | 搜索 | Google Developers
- 📖 RDFa - Linked Data in HTML
- 📖 JSON-LD
- 📖 Microdata
- 🛠 使用Structured Data Testing Tool测试你的页面。
- 🛠 适用于结构化数据的完整结构列表Schema.org Full Heirarchy
rel="prev" and rel="next" to indicate paginated content.<!-- Example: Pagination link tags for page 2 of a paginated list -->
<link rel="prev" href="https://example.com/?page=1">
<link rel="next" href="https://example.com/?page=3">
这份“前端开发清单”同样被翻译为如下语言版本,感谢所有翻译者的热情贡献!
如果想标示出你的项目遵循了这份“前端开发清单”的各项规定,欢迎将如下徽章放在你的项目的README文件上!
[](https://github.com/thedaviddias/Front-End-Checklist/)
提issue或提交合并请求以建议更改或添加。
前端开发清单 项目有两个分支:
master该分支包含README.md,内容会自动映射到前端开发清单。
网站上。
develop这个分支将用于对结构和内容进行一些重大更改。不过最好还是使用主分支来修复小错误或添加新项目。
如果您有任何问题或建议,可以通过Gitter或Twitter联系我们:
感谢以下人员对本项目的贡献 [Contribute]。
感谢所有赞助我们的朋友! 🙏 [成为支持者]
通过成为赞助商来支持这个项目。您的徽标将显示在这里,并链接到您的网站。 [成为赞助商]
27 followers · starred Jun 2020
110 followers · starred Jan 2018
22 followers · starred Apr 2024
38 followers · starred Jul 2018