• WEB前端之HTML 规范


    摘要
    优秀的项目源码,即使是多人开发,看代码也如出一人之手。统一的编码规范,可使代码更易于阅读,易于理解,易于维护

    HTML 规范
    缩进
    统一两个空格缩进

    命名规范
    class 应以功能或内容命名,不以表现形式命名;
    class 与 id 单词字母小写,多个单词组成时,采用中划线-分隔;
    使用唯一的 id 作为 Javascript hook, 同时避免创建无样式信息的 class;
    DOCTYPE 声明
    HTML 文件必须加上 DOCTYPE 声明,并统一使用 HTML5 的文档声明:

    <!DOCTYPE html>

    1
    2
    meta 标签
    统一使用 “UTF-8” 编码
    <meta charset="utf-8">

    1
    2
    SEO 优化
    <!-- 页面关键词 -->
    <meta name ="keywords" content =""/>
    <!-- 页面描述 -->
    <meta name ="description" content ="">
    <!-- 网页作者 -->
    <meta name ="author" content ="">

    1
    2
    3
    4
    5
    6
    7
    优先使用 IE 最新版本和 Chrome
    <meta http-equiv ="X-UA-Compatible" content ="IE = edge,chrome = 1">

    1
    2
    为移动设备添加视口
    <!-- device-width 是指这个设备最理想的 viewport 宽度 -->
    <!-- initial-scale=1.0 是指初始化的时候缩放大小是1,也就是不缩放 -->
    <!-- user-scalable=0 是指禁止用户进行缩放 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">

    1
    2
    3
    4
    5
    禁止自动识别页面中有可能是电话格式的数字
    <meta name="format-detection" content="telephone=no">

    1
    2
    团队约定:

    pc 端:

    <meta charset="utf-8">
    <meta name="keywords" content="your keywords">
    <meta name="description" content="your description">
    <meta name="author" content="author,email address">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
    web前端开发资源Q-q-u-n: 767273102 ,内有免费开发工具,零基础,进阶视频教程,希望新手少走弯路
    1
    2
    3
    4
    5
    6
    移动端:

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <meta name="format-detection" content="telephone=no">

    1
    2
    3
    4
    标签
    html 标签分为以下几类:

    自闭合标签(self-closing),无需闭合。例如:area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、track、wbr 等 )
    闭合标签(closing tag),需闭合 。例如:textarea、title、h、div、span 等
    团队约定:

    所有具有开始标签和结束标签的元素都必须要写上起止标签,某些允许省略开始标签或和束标签的元素亦都要写上
    自闭合标签不要加上结束标签
    自定义标签的名字必须包含一个破折号(-),<x-tags>、<my-element>和<my-awesome-app>都是正确的名字,而<tabs>和<foo_bar>是不正确的。这样的限制使得 HTML 解析器可以分辨那些是标准元素,哪些是自定义元素
    自定义标签必须写上开始标签和闭合标签
    尽量减少标签数量
    元素属性
    元素属性值使用双引号语法
    推荐:

    <input type="text">

    1
    2
    不推荐:

    <input type=text>
    <input type='text'>

    1
    2
    3
    代码嵌套
    块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素
    标题和段落中不能包含块,如:h1、h2、h3、h4、h5、h6、p、dt
    块与内联不能并列,块级元素与块级元素并列、内嵌元素与内嵌元素并列
    有些标签是固定的嵌套规则,比如 ul 包含 li、ol 包含 li、dl 包含 dt 和 dd 等等。
    灵活使用伪类
    不要让非内容信息污染了你的 HTML,打乱了 HTML 结构。可以使用:before、:after 等伪类元素

    推荐:

    HTML 代码

    <!-- That is clean markup! -->
    <span class="text-box">
    See the square next to me?
    </span>

    1
    2
    3
    4
    5
    CSS 代码:

    /* We use a :before pseudo element to solve the design problem of placing a colored square in front of the text content */
    .text-box:before {
    content: '';
    display: inline-block;
    1rem;
    height: 1rem;
    background-color: red;
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    不推荐:

    HTML 代码:

    <!-- We should not introduce an additional element just to solve a design problem -->
    <span class="text-box">
    <span class="square"></span>
    See the square next to me?
    </span>

    1
    2
    3
    4
    5
    6
    CSS 代码:

    .text-box > .square {
    display: inline-block;
    1rem;
    height: 1rem;
    background-color: red;
    }
    web前端开发资源Q-q-u-n: 767273102 ,内有免费开发工具,零基础,进阶视频教程,希望新手少走弯路
    1
    2
    3
    4
    5
    6
    7
    特殊符号必须使用转义符
    符号 描述 转义符
    空格 &nbsp;
    < 小于 &lt;
    > 大于 &gt;
    & 和 &amp;
    " 引号 &quot;
    纯数字输入框
    使用 type=“tel” 而不是 type=“number”

    <input type="tel">

    1
    2
    类型属性
    不需要为 CSS、JS 指定类型属性,HTML5 中默认已包含。

    推荐:

    <link rel="stylesheet" href="" >
    <script src=""></script>

    1
    2
    3
    不推荐:

    <link rel="stylesheet" type="text/css" href="" >
    <script type="text/javascript" src="" ></script>

    1
    2
    3
    注释规范
    单行注释

    一般用于简单的描述,如某些状态描述、属性描述等
    注释内容前后各一个空格字符,注释位于要注释代码的上面,单独占一行
    推荐:

    <!-- Comment Text -->
    <div>...</div>

    1
    2
    3
    不推荐:

    <div>...</div><!-- Comment Text -->

    <div><!-- Comment Text -->
    ...
    </div>

    1
    2
    3
    4
    5
    6
    模块注释

    注释内容前后各一个空格字符
    <!-- S Comment Text -->表示模块开始
    <!-- E Comment Text -->表示模块结束,模块与模块之间相隔一行
    模块注释内部嵌套模块注释,<!-- /Comment Text -->
    推荐:

    <!-- S Comment Text A -->
    <div class="mod_a">

    <div class="mod_b">
    ...
    </div>
    <!-- /mod_b -->

    <div class="mod_c">
    ...
    </div>
    <!-- /mod_c -->

    </div>
    <!-- E Comment Text A -->

    <!-- S Comment Text D -->
    <div class="mod_d">
    ...
    </div>
    <!-- E Comment Text D -->
    web前端开发资源Q-q-u-n: 767273102 ,内有免费开发工具,零基础,进阶视频教程,希望新手少走弯路
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    语义化
    没有 CSS 的 HTML 是一个语义系统而不是 UI 系统
    通常情况下,每个标签都是有语义的
    语义化的 HTML 结构,有助于机器(搜索引擎)理解,另一方面多人协作时,能迅速了解开发者意图
    建议页面中多使用语义化标签,而不是整个页面以 div 构成
    常见标签语义:
    标签 语义
    <p> 段落
    <hn> 标题(h1~h6)
    <ul> 无序列表
    <ol> 有序列表
    <nav> 标记导航,仅对文档中重要的链接群使用
    <main> 页面主要内容,一个页面只能使用一次。如果是 web 应用,则包围其主要功能
    <article> 定义外部的内容,其中的内容独立于文档的其余部分
    <section> 定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。
    <aside> 定义其所处内容之外的内容。如侧栏、文章的一组链接、广告、友情链接、相关产品列表
    <header> 页眉通常包括网站标志、主导航、全站链接以及搜索框
    <footer> 页脚,只有当父级是 body 时,才是整个页面的页脚
    <figure> 规定独立的流内容(图像、图表、照片、代码等等)(默认有 40px 左右 mar

  • 相关阅读:
    [翻译] 编写高性能 .NET 代码--第五章 通用编码与对象设计 -- 类 vs 结构体
    [翻译] 编写高性能 .NET 代码--第二章 GC -- 配置选项
    [翻译]编写高性能 .NET 代码 第二章:垃圾回收 基本操作
    [翻译]编写高性能 .NET 代码 第二章:垃圾回收
    [翻译]编写高性能 .NET 代码 第一章:工具介绍 -- Visual Studio
    [翻译]编写高性能 .NET 代码 第一章:工具介绍 -- Performance Counters(性能计数器)
    [翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 平均值 vs 百分比
    [翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 选择什么来衡量
    NGUI锚定系统:UIAnchorUIRect
    NGUI Panel裁剪、层级实现原理
  • 原文地址:https://www.cnblogs.com/helloworld3/p/11160934.html
Copyright © 2020-2023  润新知