一、命名技巧
1、語義化
即合適標(biāo)簽+合適命名
(1)語義化標(biāo)簽優(yōu)先
(2)基于功能命名、內(nèi)容命名、表現(xiàn)命名
(3)簡略、明了、無后患
tips:可自己改名字、翻譯成英文單詞
2、范例
(1)
<!-- 不好 -->
<div class="article">
<div class="article_title">編碼規(guī)范</div>
<div class="the_content">今天講的內(nèi)容是編碼規(guī)范,講師
<div class="darkbold">若愚</div> @饑人谷</div>
</div>
<!-- 好 -->
<article>
<h1>編碼規(guī)范</h1>
<p>今天講的內(nèi)容是編碼規(guī)范,講師
<b>若愚</b> @饑人谷</p>
</article>
(2)
<!-- 不好 -->
<div class="left"></div>
<div class="red"></div>
<div class="s"></div>
<a class="link" href="#"></a>
<!-- 好 -->
<div class="success"></div>
<div class="theme-color"></div>
<a class="login" href="#"></a>
(3)
<!-- 好 -->
<article class="movies">...</article>
<article class="news">...</article>
<!-- 不好 -->
<article class="blue">...</article>
<article class="redBg mt30 bigText">...</article>
3、命名范例
(1).所有命名都使用英文小寫
推薦:`<div class="main"></div> `
不推薦: `<div class="Main"></div> `
(2).命名用引號包裹
推薦:`<div id="header"></div> `
不推薦: `<div id=header></div> `
(3).用中橫線連接
推薦:`<div class="mod-modal"></div> `
不推薦: `<div class="modModal"></div> `
(4).命名體現(xiàn)功能,不涉及表現(xiàn)樣式(顏色、字體、邊框、背景等
推薦:`<div class="text-lesser"></div>`
不推薦: `<div class="light-grey"></div>`
4、常見命名
第一種:
-
.wrap或.wrapper-- 用于外側(cè)包裹 -
.container或.ct-- 包裹容器 -
.header-- 用于頭部 -
.body-- 頁面 body -
.footer-- 頁面尾部 -
aside、sidebar-- 用于側(cè)邊欄 -
.content-- 和header footer對應(yīng),用于主要內(nèi)容 -
.navigation-- 導(dǎo)航元素 -
.pagination-- 分頁
第二種: -
.tabs>.tab-- tab 切換 -
.breadcrumbs-- 導(dǎo)航列表、面包屑 -
.dropdown-- 下拉菜單 -
.article-- 文章 -
.main-- 用于主體 -
.thumbnail-- 頭像,小圖像 -
.media-- 媒體資源 -
.panel-- 面板 -
.tooltip-- 鼠標(biāo)放置上去的提示 -
.popup-- 鼠標(biāo)點擊彈出的提示
第三種: -
.button、.btn-- 按鈕 -
.ad-- 廣告 -
.subnav-- 二級導(dǎo)航 -
.menu-- 菜單 -
.tag-- 標(biāo)簽 -
.message或者.notice-- 提示消息 -
.summary-- 摘要 -
.logo-- logo -
.search-- 搜索框 -
.login-- 登錄
第四種: -
.register-- 注冊 -
.username-- 用戶名 -
.password-- 密碼 -
.banner-- 廣告條 - `.copyright -- 版權(quán)
-
.modal或者.dialog-- 彈窗
第五種:
var 名字 = {
狀態(tài): [
'inverse',
'toggled',
'switched',
'original',
'initial',
'identified',
'disabled',
'loading',
'pending',
'syncing',
'default'
],
修飾: [
'dark',
'light',
'shaded',
'flat',
'ghost',
'maroon',
'pale',
'intense',
'twisted',
'narrow',
'wide',
'smooth',
'separate',
'clean',
'sharp',
'aligned'
],
元素: [
'pagination',
'modal',
'popup',
'article',
'story',
'flash',
'status',
'state',
'media',
'block',
'card',
'teaser',
'badge',
'label',
'sheet',
'poster',
'notice',
'record',
'entry',
'item',
'figure',
'square',
'module',
'bar',
'button',
'action',
'knob'
],
布局: [
'navigation',
'wrapper',
'inner',
'header',
'footer',
'aside',
'section',
'divider',
'content',
'container',
'panel',
'pane',
'construct',
'composition',
'spacing',
'frame'
]
}
二、CSS編碼規(guī)范
1、書寫規(guī)范
- tab 用兩個空格表示
- css的 :后加個空格,
{前加個空格 - 每條聲明后都加上分號
- 換行,而不是放到一行
- 顏色用小寫,用縮寫,
#fff - 小數(shù)不用寫前綴,
0.5s->.5s;0不用加單位 - 盡量縮寫,
margin: 5px 10px 5px 10px->margin: 5px 10px
2、范例——google編碼規(guī)范
/* Not recommended */
.test {
display: block;
height: 100px
}
/* Recommended */
.test {
display: block;
height: 100px;
}
/* Not recommended */
h3 {
font-weight:bold;
}
/* Recommended */
h3 {
font-weight: bold;
}
/* Not recommended: missing space */
#video{
margin-top: 1em;
}
/* Not recommended: unnecessary line break */
#video
{
margin-top: 1em;
}
/* Recommended */
#video {
margin-top: 1em;
}
/* Not recommended */
a:focus, a:active {
position: relative; top: 1px;
}
/* Recommended */
h1,
h2,
h3 {
font-weight: normal;
line-height: 1.2;
}
/* Always put a blank line (two line breaks) between rules. */
html {
background: #fff;
}
body {
margin: auto;
width: 50%;
}
/* Not recommended */
@import url("http://www.google.com/css/maia.css");
html {
font-family: "open sans", arial, sans-serif;
}
/* Recommended */
@import url(//www.google.com/css/maia.css);
html {
font-family: 'open sans', arial, sans-serif;
}
三、參考
- google html css編碼規(guī)范
- bootstrap編碼規(guī)范
其中,對新手前端寫代碼較重要的因素:聲明順序。相關(guān)的屬性聲明應(yīng)當(dāng)歸為一組,并按照下面的順序排列:
Positioning(定位)
Box model(盒模型)
Typographic(與文字相關(guān),字體大小寬高居中)
Visual(顏色相關(guān))
由于定位(positioning)可以從正常的文檔流中移除元素,并且還能覆蓋盒模型(box model)相關(guān)的樣式,因此排在首位。盒模型排在第二位,因為它決定了組件的尺寸和位置。
其他屬性只是影響組件的內(nèi)部(inside)或者是不影響前兩組屬性,因此排在后面。
- 命名這貨真難
總結(jié):鏈接里的文章強烈建議通看一遍