ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
编码规范:http://www.css88.com/doc/codeguide/ ## 一、语义化 语义化优点:提升可读性便于后期阅读维护,提升搜索引擎SEO优化。 ### 1、标签语义化 标题(H1~H6)、列表(li)、段落(p)、文字(span)、表头(thead)、表体(tbody)等等 ### 2、css类名语义化 头部(header)、主体(container)、底部(footer)、侧边栏(sidebar)、广告条(banner)等等 ~~~ <div class="module-header"></div> <div class="module-container"></div> <div class="module-footer"></div> ~~~ ## 二、命名规范 ### 1、css的class命名 多单词时通常用“-”隔开,如:.note-container、.note-panel、.note-panel-title等 ### 2、css的id命名 多单词时通常驼峰形式,如#userName、#consNo等 ### 3、单词命名 在命名class、id、js变量名等尽量要与当前含义一致的英文单词,如果英语不好的话可通过在线翻译网站查询那就的英文。 **推荐:** 快来查查大神们是怎么命名自己的变量的https://unbug.github.io/codelf 可筛选不同语言的变量名称、可安装成浏览器或IDE的插件实现快速变量翻译https://github.com/unbug/codelf/wiki ## 三、html声明规范 1. 以`<!DOCTYPE html>` 开始,不区分大小写,前面不要有任何内容。否则IE将以**杂项的文档模式**解析html. 2. `<meta charset="utf-8">`声明文档使用的字符编码。如果是jsp则每个jsp文件顶部都是引用 ~~~ <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> ~~~ 3、优先使用 IE 最新版本或 IE里的Google Chrome Frame插件 ~~~ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> ~~~ 4、双核浏览器(如360)使用优先使用Chrome ~~~ <meta name="renderer" content="webkit"> ~~~ ## 四、数据绑定规范 ### 1、不规范用法一 ~~~ <a href="javascript:query('userName','1234');">查询</a> 或 <a href="javascript:void(0);" onclick="query('userName','1234')">查询</a> <script> window.query(userName,userNo) = function(){ alert(userName+userNo); } </script> ~~~ **说明:** 由于在加载慢等情况下,html已加载完成,而js里的query函数还没执行到,此时点击查询按钮则出现query函数未定义的错误。 ### 2、不规范用法二 ~~~ <a href="javascript:void(0);" userName='用户名' userNo='1234' id="queryBtn">查询</a> 或 <a href="#" vaule='userName-1234' id="queryBtn">查询</a> <script> $(function(){ $("#queryBtn").click(function(){ var userName=$(this).attr('userName'); var userNo= $(this).attr('userNo'); 或 var userName=$(this).attr('vaule').split('-')[0]; }); }) </script> ~~~ **说明:** 给标签加自定义属性在低版本IE会报错,把若干个值用‘-’隔开放在value里再split用法不够清晰也不易维护。 ###3、正确用法 ~~~ <a href="javascript:void(0);" data-userName='userName' data-userNo='1234' id="queryBtn">查询</a> <script> $(function(){ $("#queryBtn").click(function(){ var userName=$(this).data('userName'); var userNo=$(this).data('userNo'); return false;//阻止事件冒泡 }); }) </script> ~~~ **说明:** data-属性 允许我们在DOM元素上绑定任意类型的数据,避免了循环引用的内存泄漏风险。提升了读取速度,降低操作过程的内存开销。