web前端规范-HTML部分

本规范参考和整合了腾讯网易NEC以及Google团队的开发规范,仅供公司内部团队共勉。

页头(Head)

  1. 文档类型统一使用html5的doctype
  2. 编码默认使用UTF-8
  3. 定义标题(Title)属性,页面名称-二级菜单名-网站全名,28个汉字以内
  4. 定义页面关键字(Keywords),产品名、专题名、专题相关名词,之间用英文半角逗号隔开
  5. 定义页面描述(Description),不超过150个字符,描述内容要和页面内容相关
<!DOCTYPE html>
<meta charset="utf-8">
<title>第一课 早起的鸟儿有虫吃 - 我的资源 - 智慧教学云平台</title>
<meta name="keywords" content="智慧教学云平台,我的资源,早起的虫儿被鸟吃" />
<meta name="description" content="智慧教学云平台" />


其他Meta

PC端Meta:
<meta charset="utf-8" /> 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="robots" content="all">
<meta name="Copyright" content="Copyright © 2018 xxx公司" />
<meta name="Description" content="页面的描述内容" />
<meta name="Keywords" content="页面关键字" />
移动端Meta:
<meta charset="utf-8" /> 
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
<!-- 为了防止页面数字被识别为电话号码,可根据实际需要添加: -->
<meta name="format-detection" content="telephone=no"> 
<!-- 让添加到主屏幕的网页再次打开时全屏展示,可添加:   -->
<meta content="yes" name="mobile-web-app-capable">
<meta content="yes" name="apple-mobile-web-app-capable">
<meta name="robots" content="all">
<meta name="Copyright" content="Copyright © 2018 xxx公司" />
<meta name="Description" content="页面的描述内容" />
<meta name="Keywords" content="页面关键字" />


link及script标签

  1. 使用link将css文件引入,并置于head中
  2. 使用script将js文件引入,并置于body底部
  3. 在引用样式表和脚本时,不要指定 type 属性,除非不是 CSS 或 JavaScript。因为 HTML5 中已经默认指定样式变的 type 是 text/css,脚本的type 是 text/javascript。
<!-- Not recommended -->
<link rel="stylesheet" href="//www.google.com/css/maia.css"
  type="text/css">
<!-- Recommended -->
<link rel="stylesheet" href="//www.google.com/css/maia.css">
<!-- Not recommended -->
<script src="//www.google.com/js/gweb/analytics/autotrack.js"
  type="text/javascript"></script>
<!-- Recommended -->
<script src="//www.google.com/js/gweb/analytics/autotrack.js"></script>
  1. 引入库文件,文件名须包含库名称及版本号及是否为压缩版,比如jquery-1.4.1.min.js
  2. 引入插件,文件名格式为库名称+插件名称,比如jQuery.cookie.js
  3. 结构、表现、行为三者分离,确保相互耦合最小化。禁止写内联样式!,即style=”…”(某些js效果需添加样式的除外,但也可添加具体的某个class)

HTML结构

  1. 结构顺序和视觉顺序基本保持一致,按照从上至下、从左到右的视觉顺序书写HTML结构
  2. 用div代替table布局,可以使HTML更具灵活性,也方便利用CSS控制
  3. table不建议用于布局,但表现具有明显表格形式的数据,table还是首选
  4. 保持良好的简洁的树形结构,每一个块级元素都另起一行,每一行都使用Tab(2个空格)缩进对齐(head和body的子元素不需要缩进)
<!-- Recommended -->
<div>
  <div>
    <h2></h2>
  </div>
</div>
<!-- Not recommended -->
<div><div><h2></h2></div></div>
  1. 删除结尾多余空格,减少比较代码时的麻烦
<!-- Not recommended -->
<p>What?_
<!-- Recommended -->
<p>Yes please.
  1. 对于内容较为简单的表格,建议将tr写成单行
    另外,请注意做到以下几点
    1. 结构上如果可以并列书写,就不要嵌套。
      如果可以写成
    <!-- Recommended -->
    <div></div>
    <div></div>
    
    就不要写成
    <!-- Not recommended -->
    <div>
      <div></div>
    </div>
    
    1. 如果结构已经可以满足视觉和语义的要求,那么就不要有额外的冗余的结构。
      比如如下写已经能满足要求
    <!-- Recommended -->
    <div>
      <h2></h2>
    </div>
    
    就不要再写成
    <!-- Not recommended -->
    <div>
      <div>
        <h2></h2>
      </div>
    </div>
    
    1. 一个标签上引用的className不要过多,越少越好。
      比如不要出现这种情况:
    <!-- Not recommended -->
    <div class="class1 class2 class3 class4"></div>
    


HTML标签

  1. 标签必须合法且闭合、嵌套正确,HTML 元素名称,属性,属性值(除非 text/CDATA),CSS 选择器,属性,属性值都需小写。
<!-- Not recommended -->
<A HREF="/">Home</A>
<!-- Recommended -->
<img src="google.png" alt="Google">
/* Not recommended */
color: #E5E5E5;
/* Recommended */
color: #e5e5e5;
  1. 标签语法无错误,语义化html, 如 标题根据重要性用h*(同一页面只能有一个h1,段落标记用p,列表用ul,内联元素中不可嵌套块级元素。正确的使用 HTML 元素对于可访问性、可重用性以及编码效率都很重要。
<!-- Not recommended -->
<div onclick="goToRecommendations();">All recommendations</div>
<!-- Recommended -->
<a href="recommendations/">All recommendations</a>
  1. 对于像图片、视频、canvas 动画等多媒体元素,确保提供其他可访问的内容。图片可以使用替代文本(alt),视频和音频可以使用文字版本。
<!-- Not recommended -->
<img src="cat.jpg">
<!-- Recommended -->
 <img src="cat.jpg" alt="一只小猫" />
  1. 背景图上的文字应该同时写在html中,并使用css使其不可见,有利于搜索引擎抓取你的内容,也可以在css失效的情况下看到内容
  2. 标签的自定义属性以data-开头,如:<a href="#" data-num='18'></a>
  3. 除非有特定的功能、组件要求等,禁止随意使用id来定义元素样式
  4. 属性和值全部小写,每个属性都必须有一个值,每个值必须加双引号
<!-- Not recommended -->
<a class='maia-button maia-button-secondary'>Sign in</a>
<!-- Recommended -->
<a class="maia-button maia-button-secondary">Sign in</a>
  1. 没有值的属性必须使用自己的名称做为值(checked、disabled、readonly、selected等等)
  2. 书写链接地址时, 必须避免重定向,例如:href="http://itaolun.com/", 即须在URL地址后面加上"/"
  3. 省略图片、样式、脚本以及其他媒体文件 URL 的协议部分(http:,https:),除非文件在两种协议下都不可用。这种方案称为 protocol-relative URL,好处是无论你是使用 HTTPS 还是 HTTP 访问页面,浏览器都会以相同的协议请求页面中的资源,同时可以节省一部分字节。
<!-- Not recommended -->
<script src="https://www.google.com/js/gweb/analytics/autotrack.js"></script>
<!-- Recommended -->
<script src="//www.google.com/js/gweb/analytics/autotrack.js"></script>
  1. 必须为含有描述性表单元素(input, textarea)添加label
<!-- Not recommended -->
<p>姓名: <input type="text" id="name" name="name" /></p>
<!-- Recommended -->
<p><label for="name">姓名: </label><input type="text" id="name" /></p>
  1. 如果团队中文件和编辑器使用同样的编码方式,就没必要使用实体引用,如 —, ”,☺,除了一些在 HTML 中有特殊含义的字符(如 < 和 &)以及不可见的字符(如空格)。
<!-- Not recommended -->
The currency symbol for the Euro is “&eur;”.
<!-- Recommended -->
The currency symbol for the Euro is “€”.


HTML注释

采用类似标签闭合的写法,与HTML统一格式;注释文案两头空格

  1. 开始注释:
<!-- 注释文案 -->

(文案两头空格)。

  1. 结束注释:
<!-- /注释文案 -->

(文案前加“/”符号,类似标签的闭合)。

  1. 允许只有开始注释!
  2. 单行代码的注释也保持同行,两端空格;多行代码的注释起始和结尾都另起一行并左缩进对齐
<!-- 头部 -->
<div class="g-hd">
   <!-- LOGO -->
   <!-- <h1 class="m-logo"><a href="#">LOGO</a></h1> -->
   <!-- /LOGO -->
   <!-- 导航 -->
   <ul class="m-nav">
       <li><a href="#">NAV1</a></li>
       <li><a href="#">NAV2</a></li>
       <!-- 更多导航项 -->
   </ul>
   <!--
   <div>
     内容1
     <div>内容2</div>
   </div>
   -->
   <!-- /导航 -->
</div>
<!-- /头部 -->


任务项

用 TODO 来标记待办事项,而不是用一些其他的标记,像 @@。

<!-- TODO: remove optional tags -->
<ul>
  <li>Apples</li>
  <li>Oranges</li>
</ul>

页面跳转

PC端
if(/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {
    window.location.href = "移动端地址";
}
移动端(反转)
if(!/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {
    window.location.href = "PC端地址";
}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,421评论 1 45
  • 格式后期处理。 Jeremy Keith在 Fronteers 2010 上的主题演讲 今天我想跟大家谈一谈HTM...
    LordZhou阅读 1,118评论 0 17
  • 对于java中的思考的方向,1必须要看前端的页面,对于前端的页面基本的逻辑,如果能理解最好,不理解也要知道几点。 ...
    神尤鲁道夫阅读 802评论 0 0
  •   DOM(文档对象模型)是针对 HTML 和 XML 文档的一个 API(应用程序编程接口)。   DOM 描绘...
    霜天晓阅读 3,613评论 0 7
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 3,828评论 0 0