Web前端开发规范2017(HTML/JavaScript/CSS)

Web前端开发规范旨在规范前端开发,提高代码质量,增强代码可读性和可维护性。本文将详细讲解“Web前端开发规范2017(HTML/JavaScript/CSS)”的完整攻略。

HTML规范

DOCTYPE

统一使用HTML5标准的文档类型声明:

<!DOCTYPE html>
<html>
  ...
</html>

编码

使用UTF-8编码:

<meta charset="UTF-8">

标签

空白

在空标签中不要使用斜线:

<!-- 推荐 -->
<hr>

<!-- 不推荐 -->
<hr />

元素和属性

  • 应该使用双引号而不是单引号,属性值不区分大小写。
<!-- 推荐 -->
<div class="wrapper"></div>

<!-- 不推荐 -->
<div class='wrapper'></div>
  • 在书写属性和值时,不要留空格。
<!-- 推荐 -->
<a class="btn" href="xxx.html">click me</a>

<!-- 不推荐 -->
<a class= "btn" href= "xxx.html" >click me</a>

内容

  • 使用四个空格来代替制表符,缩进只能使用空格,不能使用制表符。
<!-- 推荐 -->
<ul>
    <li>item 1</li>
    <li>item 2</li>
</ul>

<!-- 不推荐 -->
<ul>
    <li>item 1</li>
    <li>item 2</li>
</ul>
  • 不要混淆标记和内容,例如在\<h1>标签中同时包含一个标题和一段段落。
<!-- 不推荐 -->
<h1>标题和段落</h1>

<!-- 推荐 -->
<h1>标题</h1>
<p>段落</p>

CSS规范

选择器

  • 嵌套不超过3层,可以使用伪类和伪元素。
/* 推荐 */
.selector .item:hover:before {
  content: "";
}

/* 不推荐 */
ul li .selector:hover:before {
  content: "";
}
  • 尽量使用class,避免使用标签和ID选择器。
/* 推荐 */
.navbar {}

/* 不推荐 */
ul {}

#navbar {}
  • 特殊情况下可以使用ID选择器,比如页面中的锚点。

属性

  • 属性值为0时不要加单位。
/* 推荐 */
margin: 0;

/* 不推荐 */
margin: 0px;
  • 使用简写属性来减少代码量。
/* 推荐 */
margin: 0;

/* 不推荐 */
margin-top: 0;
margin-right: 0;
margin-bottom: 0;
margin-left: 0;

命名规范

  • 给样式命名时要简单明了,避免出现类似“black”“red”这样的无意义名称。
/* 推荐 */
.login {}

/* 不推荐 */
.xjgo {}
  • 使用中划线作为命名的分隔符。
/* 推荐 */
.news-list {}

/* 不推荐 */
.newslist {}

JavaScript规范

变量命名

  • 变量名使用Camel命名法,函数名首字母应该大写。
// 推荐
var userName = "Tom";

function Login() {}

// 不推荐
var user_name = "Tom";

function login() {}

代码缩写

  • 变量名称具有含义,不要使用缩写或者不必要的缩写。
// 推荐
var i = 0;

// 不推荐
var j = 0;

var count = 0;

代码格式

  • 使用ESLint等工具进行代码规范检测,并编辑器配置代码美化、自动补全、快捷键等方便操作的插件。

示例

HTML示例

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Web前端开发规范2017</title>
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
    <header id="header" class="clearfix">
        <a href="#" class="logo">
            <img src="images/logo.png" alt="logo">
        </a>
        <nav class="navbar">
            <ul>
                <li><a href="#">首页</a></li>
                <li><a href="#">产品</a></li>
                <li><a href="#">服务</a></li>
                <li><a href="#">客户案例</a></li>
                <li><a href="#">关于我们</a></li>
                <li><a href="#">联系我们</a></li>
            </ul>
        </nav>
    </header>
    <section id="banner" class="banner">
        <h2>Web前端开发规范2017</h2>
        <p>让代码更规范,让前端更优雅。</p>
    </section>
    <section id="introduction" class="introduction">
        <h2>开发规范</h2>
        <p>Web前端开发规范,为您打造更好的代码,更优雅的前端。</p>
    </section>
    <footer id="footer" class="clearfix">
        <p>版权所有 &copy; 2017 - Web前端开发规范</p>
    </footer>
    <script src="js/main.js"></script>
</body>
</html>

CSS示例

/*------------------------------------*\
    #UNIVERSAL RESETS
\*------------------------------------*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, menu, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video
{
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font-family: inherit;
    vertical-align: baseline;
}

/*------------------------------------*\
    #MAIN
\*------------------------------------*/

body {
    font-family: "Helvetica Neue",Helvetica,PingFang SC,"Hiragino Sans GB","Microsoft YaHei",Verdana;
    font-size: 14px;
    line-height: 1.5;
    color: #333;
    background: #f9f9f9;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: normal;
    color: inherit;
}

.logo img {
    width: 80px;
    height: 36px;
}

.navbar ul {
    list-style: none;
}

.navbar a {
    color: #666;
    display: block;
    padding: 10px 15px;
}

.navbar a:hover {
    background: #f1f1f1;
}

.banner {
    height: 400px;
    background: url("../images/banner.jpg") center center no-repeat;
    background-size: cover;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.banner h2 {
    font-size: 48px;
    color: white;
    margin-bottom: 20px;
}

.banner p {
    font-size: 24px;
    color: #ccc;
}

.introduction {
    padding: 50px 0px;
    text-align: center;
}

.introduction h2 {
    margin-bottom: 20px;
}

.introduction p {
    color: #666;
}

#footer {
    padding: 20px 0px;
    text-align: center;
    background: white;
    color: #666;
}

#footer p {
    font-size: 12px;
}

JavaScript示例

function add(x, y) {
    return x + y;
}

function multiply(x, y) {
    return x * y;
}

var result = add(1,2);
console.log(result);

result = multiply(2,3);
console.log(result);

以上是对Web前端开发规范2017的详细讲解,希望可以帮助你编写更加高效规范的代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Web前端开发规范2017(HTML/JavaScript/CSS) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 为什么使用DOCTYPE HTML

    当我们编写HTML文档时,必须在文件开头加上文档类型声明(DOCTYPE),该声明告诉浏览器的解释器HTML文档的类型以及使用的版本。在HTML5中,文档类型定义如下: <!DOCTYPE html> 它是HTML5文档类型的标准声明。但是,在开发中,可能会遇到一些旧的HTML文档类型声明,如XHTML、HTML4等。在这种情况下,我们应该使用与…

    JavaScript 2023年6月11日
    00
  • JavaScript中按位“异或”运算符使用介绍

    JavaScript中按位“异或”运算符使用介绍 在JavaScript中,按位“异或”运算符是一种二进制运算符,用符号” ^ “表示,作用是对两个数的按位进行异或运算,返回结果。本文将详细介绍JavaScript中按位“异或”运算符的使用,包括什么是按位“异或”运算符、按位“异或”运算符的运算规则、按位“异或”运算符的一些应用场景。 什么是按位“异或”运算…

    JavaScript 2023年6月10日
    00
  • js 获取时间间隔实现代码

    获取时间间隔是在 Web 开发中比较常见的需求,例如计算两个时间之间的间隔、统计页面加载时间等,以下是详细的实现代码攻略: 获取当前时间的时间戳 在 JavaScript 中获取当前时间的时间戳可以使用 Date 对象的 getTime() 方法: // 获取当前时间的时间戳(毫秒数) var now = Date.now(); // 或者 var now …

    JavaScript 2023年5月27日
    00
  • JS 文字符串转换unicode编码函数

    当我们需要在JavaScript程序中使用包含非字符文本的字符串时,这些字符必须转换为Unicode编码格式。因此我们需要将字符串文本转换为Unicode格式,这就需要一个JavaScript函数来实现。 以下是一个将字符串文本转换为Unicode编码格式的JavaScript函数: function textToUnicode(text) { var un…

    JavaScript 2023年5月19日
    00
  • JavaScript中ES6字符串扩展方法

    下面是关于JavaScript中ES6字符串扩展方法的详细攻略: 概述 ES6中提供了许多新的字符串操作方法,其中包括字符串的模板字面量、字符串查找和替换、字符串复制、字符串格式化输出等。这些方法能够帮助我们更灵活、更高效地操作字符串。 模板字面量 模板字面量是ES6中新增的字符串表示方法,使用反引号(`)括起来的字符串模板可以添加表达式和换行符。 用法示例…

    JavaScript 2023年5月28日
    00
  • jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】

    下面详细讲解如何使用jQuery的animate()方法实现背景色渐变效果,需要使用jQuery.color.js插件。具体步骤如下: 1. 引入jQuery和jQuery.color.js插件 在HTML文件中,我们需要引入jQuery和jQuery.color.js插件。 <script src="https://code.jquery.…

    JavaScript 2023年6月11日
    00
  • JSON 入门教程基础篇 json入门学习笔记

    JSON 入门教程基础篇 json入门学习笔记 本文主要介绍JSON的基础知识,包括JSON是什么、JSON的语法格式、如何解析JSON数据等,读者可以通过本文学习到JSON的基础知识并能够进行简单的JSON数据解析。 什么是JSON JSON全称为JavaScript Object Notation,它是一种轻量级的数据交换格式。JSON以纯文本的形式表示…

    JavaScript 2023年5月27日
    00
  • 借助FileReader实现将文件编码为Base64后通过AJAX上传

    这里是借助FileReader实现将文件编码为Base64后通过AJAX上传的完整攻略: 1. 读取文件 首先通过input元素选择上传的文件,使用FileReader的readAsDataURL方法将文件读取为Base64编码的url形式。代码如下: <input type="file" id="file"&g…

    JavaScript 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部