Task13

2017-12-29  本文已影响11人  DHFE

说一说你平时写代码遵守的编码规范

上了这节课发现自己的代码习惯也是乱哄哄,这次就当成是“如何养成良好的编码习惯”问题来写吧......

黄金定律

  • 永远遵循同一套编码规范,可以是这里列出的,也可以是你自己总结的。如果你发现本规范中有任何错误,敬请指正。
  • 不管有多少人共同参与同一项目,一定要确保每一行代码都像是同一个人编写的。

项目命名

项目名采用小写方式,中横线分隔,禁止驼峰式命名。如:my-project-name

文件命名

HTML规范

语法
注释

编码规范中有一条很重要---见名知意,有时候直白的函数名还不能表达完整的意思,这个时候注释就出场了,代码是由人编写并维护的。请确保你的代码能够自描述、注释良好并且易于他人理解。好的代码注释能够传达上下文关系和代码目的。
在写代码前就应该添加注释,这时在你的脑子里的是清晰完整的思路。
如果在代码最后再添加注释,它将花费你双倍的时间。

关于注释,不同语言,功能,业务需求下也不一样,但约定俗成的

编程注释规范
HTML声明

在每个 HTML 页面开头使用这个简单地 doctype 来启用标准模式,使其每个浏览器中尽可能一致的展现。
虽然doctype不区分大小写,但是按照惯例,doctype大写

<!DOCTYPE html>

字符编码

通过明确声明字符编码,能够确保浏览器快速并容易的判断页面内容的渲染方式。这样

做的好处是,可以避免在 HTML 中使用字符实体标记(character entity),从而全部与
文档编码一致(一般采用 UTF-8 编码)。

<meta charset="UTF-8">

引入 CSS 和 JavaScript

根据 HTML5 规范, 通常在引入 CSS 和 JavaScript 时不需要指明 type,因为 text/css 和 text/javascript 分别是他们的默认值。

PS:又涨知识......

<!-- External CSS -->
<link rel="stylesheet" href="code-guide.css">

<!-- In-document CSS -->
<style>
    /* ... */
</style>

<!-- JavaScript -->
<script src="code-guide.js"></script>
属性

HTML 属性应该按照特定的顺序出现以保证易读性。

class 是为高可复用组件设计的,理论上他们应处在第一位。id 更加具体而且应该尽量少使用(例如, 页内书签),所以他们处在第二位。

Boolean 属性

Boolean 属性指不需要声明取值的属性。XHTML 需要每个属性声明取值,但是 HTML5 并不需要。
一个元素中 Boolean 属性的存在表示取值 true,不存在则表示取值 false。
简而言之,不要为 Boolean 属性添加取值。

<input type="text" disabled>

JavaScript 生成标签

在 JavaScript 文件中生成标签让内容变得更难查找,更难编辑,性能更差。应该尽量避免这种情况的出现。

元素

CSS规范

ul {
    XXX
};
参考

全局:global.css
全局样式为全站公用,为页面样式基础,页面中必须包含。

结构:global.css
页面结构类型复杂,并且公用类型较多时使用。多用在首页级页面和产品类页面中。

私有:style.css
独立页面所使用的样式文件,页面中必须包含。

模块:style.css
产品类页面应用,将可复用类模块进行剥离后,可与其它样式配合使用。

主题:themes.css
实现换肤功能时应用。

补丁 mend.css 基于以上样式进行的私有化修补。

CSS命名规范
头:header
内容:content/containe
尾:footer
导航:nav
侧栏:sidebar
栏目:column
页面外围控制整体布局宽度:wrapper
左右中:left right center
登录条:loginbar
标志:logo
广告:banner
页面主体:main
热点:hot
新闻:news
下载:download
子导航:subnav
菜单:menu
子菜单:submenu
搜索:search
友情链接:friendlink
页脚:footer
版权:copyright
滚动:scroll
内容:content
标签页:tab
文章列表:list
提示信息:msg
小技巧:tips
栏目标题:title
加入:joinus
指南:guild
服务:service
注册:regsiter
状态:status
投票:vote
合作伙伴:partner

class命名

.red { color: red; }
.f60 { color: #f60; }
.ff8600 { color: #ff8600; }
.font12px { font-size: 12px; }
.font9pt {font-size: 9pt; }
.left { float:left; }
.bottom { float:bottom; }
.barnews { }
.barproduct { }
语义化标签优先
基于功能命名、基于内容命名、基于表现命名
简略、明了、无后患

范例

<!-- 不好  -->
<div class="article">
  <div class="article_title"></div>
  <div class="the_content">
     <div class="darkbold"></div></div>
</div>

<!-- 好 -->
<article>
  <h1></h1>
  <p><b></b></p>
</article>
<!-- 好 -->
<article class="movies">...</article>
<article class="news">...</article>
<!-- 不好 -->
<article class="blue">...</article>
<article class="redBg mt30 bigText">...</article>

JavaScript

var testValue = 0, secondValue = "hi";

return x + y;

学习JS后继续补充。

Elvin Web前端代码规范

白小明 Web前端代码规范


垂直居中有几种实现方式?给出代码范例

动态高度垂直居中

通过设置上下padding,将内容“挤”入。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style>
        .ct {
            background-color: #eee;
            text-align: center;
            padding: 50px;
        }
    </style>
</head>
<body>
    <div class="ct">
        <p>2017年12月30日 12:42:31</p>
        <p>2017年12月30日 12:42:34</p>
        <p>2017年12月30日 12:43:47</p>
        <p>2017年12月30日 12:43:50</p>
        <p>2017年12月30日 12:43:55</p>
        <p>2017年12月30日 12:44:01</p>
    </div>
</body>
</html>

现在向容器内添加文字,都将是垂直居中的。

绝对定位居中

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style>
        html,body {
            height: 100%;
        }
        .ct {
            position: absolute;
            left: 50%;
            top: 50%;
            margin-left: -200px;
            margin-top: -150px;
            width: 400px;       
            height: 300px;
            box-shadow: 0px 0px 3px #000;
        }
        .ct .header {
            padding: 10px;
            background: #000;
            color: #fff;
        }
        .ct .content {
            padding: 10px;
        }
    </style>
</head>
<body>
    <div class="ct">
        <div class="header">我是标题</div>
        <div class="content">我是内容</div>
    </div>
</body>
</html>

vertical-align实现居中

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .ct {
                width: 300px;
                height: 200px;
                border: 1px solid;
                text-align: center;
            }
            .ct:before {
                content: "";
                display: inline-block;
                height: 100%;
                vertical-align: middle;
            }
            .ct img {
                vertical-align: middle;
                background-color: blue;
            }
        </style>
    </head>
    <body>
        <div class="ct">
            <img src="http://cdn.jirengu.com/public/logo-tiny.png" alt="">
        </div>
    </body>
</html>

在img元素前加上一个content,使其inline-block,设置高度100%,俩元素一起vertical-align

table-cell实现居中

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .ct {
                width: 300px;
                height: 200px;
                border: solid 1px;
                display: table-cell;
                vertical-align: middle;
                text-align: center;
            }
        </style>
    </head>
    <body>
        <div class="ct">
            <img src="http://cdn.jirengu.com/public/logo-tiny.png" alt="">
        </div>
    </body>
</html>

我所知道的几种display:table-cell的应用

布局神器(一)display:table-cell


上一篇 下一篇

猜你喜欢

热点阅读