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实现定时跳转到指定页面的完整攻略,包含以下几个部分: 使用setTimeout()函数设置定时器 编写跳转代码实现页面跳转 注意事项和示例说明 1. 使用setTimeout()函数设置定时器 在JavaScript中,我们可以使用setTimeout()函数来设置定时器,该函数接收两个参数,分别是回调函数和延迟时间(以毫秒为…

    JavaScript 2023年6月11日
    00
  • js中根据字数截取字符串,不能截断url

    根据你的要求,我将详细讲解“JS中根据字数截取字符串,不能截断URL”问题的解决方案。 问题描述 在web开发中,我们可能会遇到这样的场景:需要在显示文本时截取字符串,限制其最大字数,但是需要保留其中的url地址,也就是说,不能简单的按照字符数截断字符串,而是需要在url出现的位置进行裁剪。例如: 原文本:This is an example of a lo…

    JavaScript 2023年5月28日
    00
  • 深入理解Javascript中的循环优化

    深入理解Javascript中的循环优化 本文将介绍Javascript中循环优化的基本方法和实践经验,并通过两个具体示例,说明循环优化的重要性以及如何实现循环优化。 为什么要进行循环优化? 循环是Javascript中最常见的语句之一,它在执行时会产生大量的机器指令。当循环次数较多时,循环的性能问题会严重影响程序的执行效率。因此,对循环的优化对于提升程序的…

    JavaScript 2023年6月10日
    00
  • 浅谈JavaScript 代码简洁之道

    下面是“浅谈JavaScript代码简洁之道”的完整攻略。 浅谈JavaScript代码简洁之道 前言 JavaScript是前端开发中最重要的一门语言之一,同时也是最常用的一门语言之一。JavaScript代码的简洁性能够极大地提高代码的可读性和可维护性,因此在开发过程中,我们应该注重代码的简洁性。下面是一些关于如何让JavaScript代码更加简洁的建议…

    JavaScript 2023年5月18日
    00
  • JavaScript 对象字面量讲解

    下面是关于JavaScript对象字面量的全面讲解: JavaScript 对象字面量讲解 JavaScript 对象是一种复合数据类型,可以包含键值对,并且可以使用点语法进行访问。对象通常用于封装相关的数据和功能,并将它们组织在一起。 对象字面量是创建 JavaScript 对象最常用的方法之一。对象字面量是使用花括号({})定义对象,每个键值对之间使用冒…

    JavaScript 2023年5月27日
    00
  • JavaScript的数据类型转换原则(干货)

    JavaScript的数据类型转换原则(干货) 1. 数据类型转换的基本原则 在JavaScript中,我们经常需要将不同类型的数据进行转换,特别是在进行运算、比较和赋值等操作的时候。因此,了解数据类型转换的基本原则对于编写高质量的JavaScript代码是非常重要的。 1.1. 隐式类型转换 JavaScript中有两种类型转换方式:显式类型转换和隐式类型…

    JavaScript 2023年5月28日
    00
  • Javascript中JSON数据分组优化实践及JS操作JSON总结

    让我来详细讲解一下“Javascript中JSON数据分组优化实践及JS操作JSON总结”的完整攻略。 1. 分组优化实践 在实际开发中,我们经常需要对 JSON 数据进行分组操作。接下来我们将以示例代码为例,讲解如何优化分组操作。 1.1. 基础操作 let data = [ { name: ‘Apple’, type: ‘fruit’ }, { name…

    JavaScript 2023年5月27日
    00
  • 网页实时显示服务器时间和javscript自运行时钟

    实时显示服务器时间和JavaScript自运行时钟,是网页中经常用到的两个功能。下面我将为您介绍实现这两个功能的完整攻略。 实时显示服务器时间 实时显示服务器时间,我们需要通过向服务器发送请求来获得服务器时间,然后使用JavaScript将服务器时间实时显示在网页中。下面是实现步骤。 步骤一:通过ajax向服务器获取时间 在JavaScript中使用ajax…

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