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

yizhihongxing

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中的previousSibling和nextSibling的正确用法

    让我为您详细讲解一下“JavaScript中的previousSibling和nextSibling的正确用法”。 previousSibling和nextSibling的定义 在JavaScript中,previousSibling和nextSibling是DOM节点属性,用于获取兄弟节点中的前一个和后一个节点。 previousSibling:获取上一个…

    JavaScript 2023年6月10日
    00
  • javascript插入样式实现代码

    当我们想在网页上实现代码展示时,我们可以使用JavaScript插入样式来给代码添加样式效果,从而使代码更加美观易读。以下是实现过程的完整攻略。 步骤1:创建HTML结构 我们需要先在HTML中创建一个代码展示区域。这里我们假设代码展示区域的HTML结构如下: <div class="code"> <pre>&lt…

    JavaScript 2023年6月11日
    00
  • 浅析Java 对象引用和对象本身

    浅析 Java 对象引用和对象本身 在 Java 编程中,我们经常会涉及到对象的引用和对象本身的概念。这两者之间的关系非常密切,理解它们的作用和区别对于编写高质量的 Java 代码非常重要。 Java 对象引用 Java 中的对象引用指的是一个变量或表达式,该变量或表达式包含了对象的内存地址。简单来说,即是将对象的地址赋值给一个变量,以方便后续操作。 以下是…

    JavaScript 2023年6月10日
    00
  • Js判断CSS文件加载完毕的具体实现

    判断CSS文件加载完毕的主要方法是检测link元素的load和error事件,具体步骤如下: 使用JavaScript将CSS文件插入HTML页面中,以确保JavaScript能够访问其link元素。 <link rel="stylesheet" href="style.css" id="css-lin…

    JavaScript 2023年6月11日
    00
  • js实现移动端轮播图滑动切换

    下面是实现移动端轮播图滑动切换的完整攻略: 一、创建HTML结构 首先需要在HTML文件中创建好轮播图的结构,一般是使用<ul>和<li>标签来实现。每张轮播图使用一项<li>,其中应该包含图片和对应的说明文字,例如: <div id="slider"> <ul class=&quot…

    JavaScript 2023年6月11日
    00
  • js中的如何定位固定层的位置

    要定位固定层(也称为fixed元素)的位置,可以使用JavaScript中的两个重要属性:offsetTop和offsetLeft。这两个属性可以帮助我们知道一个元素相对于其父元素的位置。 1. 使用offsetTop和offsetLeft属性 offsetTop和offsetLeft属性是DOM属性,它们分别返回元素相对于其父元素顶部和左侧边缘的像素距离。…

    JavaScript 2023年6月11日
    00
  • JS实现含有中文字符串的友好截取功能分析

    让我来详细讲解一下 “JS实现含有中文字符串的友好截取功能分析” 的完整攻略。 1. 背景 在前端开发中,经常需要对文本进行截取展示,但是如果直接使用JS自带的字符串截取方法,会出现截取中文时的问题。因为中文字符在计算机中占用两个字节,如果按照字节截取,就会出现乱码或者截取到半个中文的情况。因此,我们需要对字符串截取封装一个方法,可以实现友好的中英文截取,而…

    JavaScript 2023年5月19日
    00
  • JavaScript中的比较操作符>、<、>=、<=介绍

    JavaScript中的比较操作符 在JavaScript中,比较操作符用来比较两个值的大小或者确定两个值是否相等。JavaScript中的比较操作符包括”>“、“<“、“>=”、“<=”等。 操作规则 比较操作符通常用来比较数值类型的数据,如果参与比较的值都是数字类型,它们将以数字来做比较,如果参与比较的值不是数字类型,则会尝试将其…

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