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日

相关文章

  • JavaScript过滤字符串中的中文与空格方法汇总

    关于“JavaScript过滤字符串中的中文与空格方法汇总”的攻略,我将分为以下几个部分进行详细讲解。 一、需求说明 首先,我们需要明确我们的需求是什么。本文主要是想要讲解如何使用JavaScript过滤字符串中的中文与空格的方法。具体而言,我们希望能够实现以下两个功能: 过滤掉字符串中的中文字符 过滤掉字符串中的空格字符 二、方法汇总 下面是本文总结的可以…

    JavaScript 2023年5月19日
    00
  • 如何实现正则表达式的JavaScript的代码高亮

    要在网页中实现正则表达式的JavaScript代码高亮,可以采用Prism.js这个JavaScript库。 下面是实现的具体步骤: 1. 引入Prism.js 在网页的标签内添加下面的代码来引入Prism.js库: <link rel="stylesheet" href="https://cdnjs.cloudflare…

    JavaScript 2023年6月10日
    00
  • JS访问对象两种方式区别解析

    JS访问对象有两种方式:点号和方括号。它们之间有着一些细微的差异,下面我将逐一进行解析。 1. 点号方法 语法: objectName.propertyName 使用点号方法时,我们需要知道对象的属性名称。点号引用属性时,也可以引用变量。 示例: const person = { name: "张三", age: 18 } console…

    JavaScript 2023年5月27日
    00
  • Java如何在临界区中避免竞态条件

    当多个线程同时访问共享资源时,容易产生竞态条件,导致程序异常或结果不可预测。Java中可以通过使用锁机制来避免竞态条件,实现线程安全。 下面是Java如何在临界区中避免竞态条件的完整攻略: 1. 使用synchronized关键字 在Java中,可以使用synchronized关键字来锁住共享资源,在同一时刻只允许一个线程访问。具体步骤如下: 定义共享资源对…

    JavaScript 2023年5月28日
    00
  • JavaScript中的this/call/apply/bind的使用及区别

    JavaScript中的this/call/apply/bind的使用及区别 在JavaScript中,this/call/apply/bind是常见的用于改变函数执行上下文以及参数传递的方法。虽然它们都有相似的作用,但使用方法与特性却有所不同。接下来,我们将一一详细介绍它们的用法和区别。 this this是JavaScript中非常常见的关键字,它用于引…

    JavaScript 2023年6月10日
    00
  • JavaScript 匿名函数(anonymous function)与闭包(closure)

    JavaScript 匿名函数(anonymous function)与闭包(closure)是 JavaScript 语言中比较常用且常误解的概念。在本文中,我们将详细介绍匿名函数与闭包的概念、用法及其注意事项。 匿名函数 概念 匿名函数是指没有函数名的函数。在 JavaScript 中,我们通常通过函数表达式来定义匿名函数。如下所示: const add…

    JavaScript 2023年5月27日
    00
  • javascript ajax类AJAXRequest2007-12-31 更新

    JavaScript AJAX类AJAXRequest2007-12-31是一种用于发送AJAX请求的JavaScript类。使用AJAXRequest类可以实现在不刷新页面的情况下,通过后台服务器获取数据并动态更新网页的应用。 下面是使用该类的详细攻略: 1. 引入AJAXRequest类 在使用AJAXRequest类之前,需要将类的代码引入到网页中。可…

    JavaScript 2023年6月10日
    00
  • JavaScript注入漏洞的原理及防范(详解)

    JavaScript注入漏洞的原理及防范(详解) 1. 原理 JavaScript注入漏洞,也称为XSS漏洞,指的是攻击者将恶意脚本注入到网页中,当用户访问这个页面时就会触发这个漏洞。XSS漏洞通常分为两种类型:反射型和存储型。 1.1 反射型XSS漏洞 反射型XSS漏洞,指的是攻击者将恶意参数注入到URL中,当用户在浏览器中访问这个URL时就会触发这个漏洞…

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