WEB学习笔记4-前端代码基本命名规法和格式规范
1.HTML命名规范及格式规范
标签名和属性应该都小写,虽然HTML代码不区分大小写;属性值应该用双引号闭合。
<IMG src=demo.jpg alt='test'/>(N)
<img src=demo.jpg alt="test"/>(Y)
给所有的关键元素定义元素的id和class,便于和CSS、javascript交互。推荐做法:根据语义和DOM树的层级关系来定义合适的名称,名称中全部使用小写,id名称中的关键词使用下划线(_)连接,class的关键词用中划线(-)连接,这样可以最大限度的保证命名不重复。
不推荐示例:
<div id="Reader">
<div id="introduce"class="introduce">
...
</div>
</div>(N)
推荐示例:
<div id="Reader">
<div id="Reader_introduce" class="Reader-introduce">
...
</div>
</div>
如果class名称仅座位javascript调用的“钩子”,则可在名称中添加“js”前缀,如下
<ul id="js_reader_memu">
<li class="memu-toc js-active">Toc</li>
<li class="memu-store js-active">Store</li>
<li class="memu-library">Library</li>
<li class="memu-news">News</li>
</ul>
HTML代码层级缩进为4个空格,如果元素中包含子元素,则此元素对应的起始标签和闭合标签分别独占用一行
不推荐示例:
<ul>
<li> item1</li><li>item2</li>
<li>item3</li><li>item4</li></ul>
推荐示例:
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
<li>item4</li>
</ul>
给HTML代码添加必要的注释。可以在页面的公共部分(页面的头部、尾部以及侧边栏等)、页面经常变化的部分(如广告栏)以及需要后端代码注入的部分添加注释。注释添加的位置在要注释的代码上单独占用一行,不要再代码行的后面直接添加,例如:
<body>
<!--main header-->
<div id="reader_head">
...
</div>
<!--动态绑定列表:toc-->
<ul id="reader_content_toc">
</ul>
...
</div>
</body>
2.CSS命名规范及格式规范
推荐的CSS类的命名规则和元素的id命名规范相似,只是组成类名称的关键字的连接符为中划线(-)
.reader-content-title{
...
}
为了避免重复,命名时,取父元素的class名作为前缀
/*父元素的样式声明*/
.reader-content{
...
}
/*子元素的class名称以父元素中的class名称作为前缀*/
.reader-content-body{
...
}
在css样式定义中,左大括号放置在选择器的同一行,并和选择器之间添加一个空格分隔,在保证可读性的基础上,缩短代码的行数;在样式声明中,属性名称和值之间用一个空格分隔,提高代码可读性。
不推荐示例:
.reader-content-title
{
backgrond:#FFF;
...
}
推荐示例:
.reader-content-title{
background:#FFF;
...
}
多个选择器具有相同的样式声明时,每个选择器应该独占一行,便于阅读和维护
不推荐示例:
h1,h2,h3{
font-weight:normal;
line-height:1.2;
}
推荐示例:
h1,
h2,
h3{
font-weight:normal;
line-height:1.2;
}
使用CSS美化工具做样式声明排序的工作
示例代码:
.reader-content-title{
background:#FFF;
boder:1px solid;
-moz-border-radius:4px;
-webkit-boeder-radius:4px;
border-radius:4px;
color:black;
text-align:center;
}
样式定义按照模块来分组,相同的模块的样式定义放在一起,不同的模块定义之间用一个空行分隔;
示例代码:
/*reader header*/
.reader-header-title{
...
}
.reader-header-introduce{
...
}
/*reader footer*/
.reader-footer-copyright{
...
}
.reader-footer-links{
...
}
在CSS中添加注释,主要分为,两种类型,文件头部的文件信息注释和正文中的解释说明性注释。文件信息一般包括文件版本,版本信息以及作者等;解释性说明性注解,有给模块的注释性和单独给选择器的注释,模块的注释则需添加注释表明模块样式定义的开始和结束,CSS选择器的注释需要添加在选择器的上一行,而不是的选择器相同一行。
示例代码:
/*注释规范说明:文件头部的文件信息注释*/
/*!
*reader content v1.0
*
*Copyright 2012
*Dual licensed under the MIT or GPL Version 2 licensed
*
*Desighned and built by dangjian
*
*/
/*注释规范说明:模块样式定义的开始和结束*/
/*content containers start*/
/*注释规范说明:注释需要添加在选择器的上一行,而不是和选择器相同的一行*/
/*content title*/
.reader-content-title{
...
}
/*content containers end*/
3.javascript命名规范及格式规范
javascript局部变量命名采用首字母小写,其他字母大写的方式命名,命名时建议采用有意义的单词命名,不推荐使用标示变量类型的前缀,如int,str,obj等。
//不推荐使用:变量命名首字母大写
var ReaderBookMark='bookmark'
//不推荐使用:变量命名意义不明确
var object={};
//不推荐使用:变量命名以类型作为前缀
var strName='Note'
//不推荐使用:变量命名使用语义不明确的缩写
var newNT=function(){
...
}
//推荐示例:变量命名语义明确
var bookmarkDefaultTitle='UntitleBookmark'
公有接口的命名为首字母大写,私有接口的命名为首字母小写
示例代码:
Reader.Contect=function{
//私有变量
var info,title;
//私有方法
var getContent=function(){
...
}
return{
//公有方法
SetTitle:function(contentTitle){
title=contentTitle;
},
//公有属性
ContentInfo:info
}
}()
JQuery框架在项目中使用广泛,推荐给JQuery类型变量添加“$”作为前缀
示例代码
var $tocTitle=$('.reader-toc-title')
左大括号应该在行的结束位置,而不应该单独一行,因为这样增加了不必要的行数。应该一直使用大括号括起逻辑块,即使逻辑块只有一行,也应该用大括号括起来,以便提高代码的可读性和可维护性。
示例代码
//左大括号应该在行的结束位置,而不应该单独一行
for(var i=0;i<100,i++){
doSomething(i);
}
//应该一直使用大括号括起逻辑块,即使逻辑只有一行,
var isFound=false;
if(statement){
isFound=true;
}
JavaScript中可以用单引号或者双引号定义字符串,但是因为习惯于定义HTML的元素属性值时使用双引号,而JavaScript中又经常包含HTML代码,所以字符串定义使用单引号也可方便于在字符串内部包含含有双引号的HTML代码。
示例代码:
var content='<span id="main_content">...';
空格的作用是提高代码的可读性,在函数参数的逗号后面使用一个空格,在操作符前后各使用一个空格,另外,使用一个空行来区分业务逻辑段
示例代码:
doSomething(myChar , 0 , 1);
where(x===y){
...
}
javascript语句结束时,应该添加一个分号。
javascript代码中,如果注释未占有多行,那么建议使用//,不推荐使用/**/。注释应单独占一行,而不是写在和代码相同一行的右边。哦CSS代码的注释规范相似,javascript代码的注释主要也是文件信息注释和代码逻辑注释
WEB学习笔记4-前端代码基本命名规法和格式规范的更多相关文章
- [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记95:Hibernate 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- java web 学习笔记 编码问题总结
java web 学习笔记 编码问题总结 1.非form表单中提交的中文参数---------------------------传递给Servlet服务器时,默认以iso-8859-1解码 ...
- Java Web 学习笔记 1
Java Web 学习笔记 1 一.Web开发基础 1-1 Java Web 应用开发概述 1.1.1 C/S C/S(Client/Server)服务器通常采用高性能的PC机或工作站,并采用大型数据 ...
- jQuery 学习笔记:jQuery 代码结构
jQuery 学习笔记:jQuery 代码结构 这是我学习 jQuery 过程中整理的笔记,这一部分主要包括 jQuery 的代码最外层的结构,写出来整理自己的学习成果,有错误欢迎指出. jQuery ...
- Java Web学习笔记之---EL和JSTL
Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...
- JAVA Web学习笔记
JAVA Web学习笔记 1.JSP (java服务器页面) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . JSP全名为Java Server Pages,中文名叫java服务器 ...
- Vue学习笔记-vue-element-admin 前端学习
一 使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7 (Windows x86- ...
- [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- istio路由配置
istio路由配置 istio的代理配置参考文档: 中文文档: https://istio.io/zh/docs/reference/config/istio.networking.v1alpha ...
- gensim LDA模型提取每篇文档所属主题(概率最大主题所在)
gensim的LDA算法中很容易提取到每篇文章的主题分布矩阵,但是一般地还需要进一步获取每篇文章归属到哪个主题概率最大的数据,这个在检索gensim文档和网络有关文章后,发现竟然没有. 简单写了一下. ...
- 在mac os10.12上安装mysql5.7.18
搜了全网都是各种坑,没能解决我的问题.最后自己琢磨出来了. 安装好以后,会弹出临时密码 ,copy住.如果手点快了,在通知栏还有一次机会,通知栏的就只能看着手打了.如果通知栏也x了,那就GG最快方法只 ...
- python--日志模块
一.logging模块就是python里面用来操作日志的模块,logging模块中主要有4个类,分别负责不同的工作 1. Logger 记录器,暴露了应用程序代码能直接使用的接口:简单点说就是一个创建 ...
- DHCP协议分析(Wireshark)
一.说明 一是很多时候IP都是设置成通过dhcp动态获取的,但一直不太清楚dhcp的具体交互过程:二是加上前几天有同事问知不知道DHCP具体交互过程:三是这两天正好在分析协议.所以就顺道来看一下. 如 ...
- Django中 media资源配置
# 用户上传的文件可以在外网通过接口直接访问 配置媒体跟路由: settings.py 用来存放用户上传的静态文件,可以对外公开的文件!!! MEDIA_ROOT = os.path.join(BAS ...
- 关于javascript中arguments的一个很好的例子
金克斯的迫击炮! 实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值 函数中的有隐式的不确定个数的参数,而我们在函数中将会用到它,很显然,这需要我们在 argum ...
- 一个简单的windows勒索软件分析
根据分析,此病毒是一个勒索软件,通过修改登录用户密码,留下勒索QQ号码向用户索要金钱. 它调用了Kernel32.dll里的WinExec来执行更改用户密码的cmd命令,密码为107289,更改完密码 ...
- PPT母版制作
选择母版 首先,去iSlide官网下载iSlide,下载iSlide后,power point的菜单栏会自动出现iSilde图标(如下图). 打开iSlide这一栏,点击“图示库”,会弹出一个窗口,就 ...
- flask 第二章 endpoint重名 Flask路由 初始化配置 Falsk Config 蓝图+目录结构
今日内容 1.路由的分发,以下两种方式效果一样,但是都能指向同一个函数 from flask import Flask app=Flask(__name__) #第一种方式 @app.route('/ ...