目 錄css
1. 通用.......................................................................................................................... 1html
1.1. 字符編碼............................................................................................................ 1express
1.2. 文件的命名........................................................................................................ 1c#
1.3. 縮進................................................................................................................... 1windows
1.4. 目錄結構............................................................................................................ 1瀏覽器
2. HTML........................................................................................................................ 2服務器
2.1. 頁面文件命名..................................................................................................... 2app
2.2. DOCTYPE............................................................................................................ 2ide
2.3. 標籤................................................................................................................... 3函數
2.4. 標籤的嵌套........................................................................................................ 3
2.5. 行內CSS............................................................................................................. 4
2.6. 自定義屬性........................................................................................................ 4
2.7. 圖片................................................................................................................... 4
2.8. 閉合浮動元素..................................................................................................... 4
3. CSS............................................................................................................................ 5
3.1. CSS Code Style..................................................................................................... 5
3.2. 選擇器的使用..................................................................................................... 6
3.3. 兼容問題............................................................................................................ 6
3.4. !important.......................................................................................................... 6
4. JavaScript................................................................................................................... 8
4.2. 文檔註釋............................................................................................................ 9
4.3. JavaScript文件引用在頁面中的位置.................................................................... 9
4.4. 避免在HTML中直接嵌入JavaScript................................................................... 10
4.5. 減小全局變量................................................................................................... 10
5. 附錄........................................................................................................................ 11
全部文件統一使用UTF-8編碼。
文件名應該所有小寫,多個單詞如下劃線「_」分開。
Tab字符縮進。
下圖爲靜態資源的目錄結構。全部靜態資源放到一級目錄:爲項目名,例如(墨爾本)目錄下。
墨爾本 目錄下通常有三個文件夾。
列出幾種標準的命名:
l 建立:create.html
l 編輯:edit.html
l 顯示:show.html
l 列表:list.html
對於頁面中使用到的html片斷頁面,應以「_」隔開命名。若是爲某一頁面專用的片斷頁面,則在「_」以後加上專用頁面的名字例如商品顯示頁中的評價片斷頁面:/show_comments.html。其意義爲/show.html頁面的一部分。
HTML頁面頁首必須填寫DOCTYPE。DOCTYPE使用XHTML 1.0 Transitional。以下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
按照XHTML規範,全部標籤名及屬性名必須全小寫,屬性值以雙引號包裹,屬性的等號兩邊禁止添加空格。全部標籤必須閉合。例如: 「<br>」必須寫做「<br />」。非替換元素禁止直接結束,例如:<div></div>禁止寫成<div />。
標籤的嵌套必須按照HTML規範嵌套,例如:<li>必須在<ol>或<ul>標籤中,不能脫離這兩個標籤。
儘可能減小行內CSS的使用,除一些相似規定表格欄位寬度等比較具備特殊性的位置,禁止在元素內使用行內CSS。行內CSS示例:
<div style=」background: black;」></div>
全部自定義屬性建議以「data-」,多個單詞以「-」分隔,例如「data-valid-type」,「data-field-name」等。該目的是爲了兼容以後的HTML5,而且jQuery 1.6對此也有着更好的支持。
對內容型的圖片和背景型的圖片進行區分。對於網站LOGO,按鈕圖片以及邊框樣式等均屬於背景型圖片,而商品的圖片,註冊用戶的頭像等則屬於內容型的圖片。背景型圖片應儘可能避免使用<img>標籤顯示在頁面中,而是應該採用CSS,背景型圖片應採用CSS Sprite技術,將零散的圖片合成爲一張圖片,以減小請求。關於CSS Sprit技術,請參考5.1
圖片的命名應該全小寫,多個單詞如下劃線「_」分隔。
對於設置了float的元素,必定要對float進行閉合。具體參考附錄5.2
對於類的命名,採用全小寫,多個單詞以「_」分隔。例如:.nav,.panel_title等。命名採用英文單詞,禁止使用漢語拼音,儘可能避免使用數字。
每條屬性獨佔一行,屬性名冒號後空一格。行結束以分號「;」結尾。
屬性順序建議按照一下順序書寫:
table.standard-table {
width: 100%;
border-spacing: 1px;
background: black;
}
儘可能縮小樣式的應用範圍。例若有個類樣式「.list-table」用於table標籤,若是該樣式不會應用在其餘標籤上的話,那麼該類樣式應寫做「table.list-table」,避免使用通配符。
避免使用ID選擇器,樣式應該儘可能選擇類選擇器,ID有可能綁定着頁面的業務邏輯,有可能發生改變,所以儘可能避免使用ID選擇器應用樣式。
避免使用IE6不兼容的選擇器,如子選擇器「>」以及屬性選擇器「[type=’checkbox’]」等。
儘可能避免使用CSS Hack,對於IE系列的瀏覽器兼容性問題,採用條件註釋加載對應的CSS,覆蓋默認樣式的方式解決。有關CSS Hack技術及IE的條件註釋技術具體請參考附錄5.3和附錄5.4。
!important會使樣式屬性優先級變爲最高,在使用時須要必定的謹慎,建議通常狀況下不要使用該關鍵字。
*{
margin:0;
padding:0;
}
body{
font-family:'宋體',宋體,'Microsoft Yahei','微軟雅黑',arial,'Hiragino Sans GB',Tahoma,Arial,Helvetica,STHeiti;
font-size:12px;
color:#706866;
}
img{
border:0;
}
ul,li{
list-style:none;
}
.f_left{
float:left;
}
.f_right{
float:right;
}
.clear{
font-size:0px;
clear:both;
}
a { blr:expression(this.onFocus=this.blur()) } /*針對 IE*/
a { outline:none; } /*針對firefox等*/
a :hover{ text-decoration: underline;}
以上這些css算是全部頁面都須要的一些屬性。
1. 爲了保證不一樣瀏覽器上字號保持一致,字號建議用點數pt和像數px來定義,pt通常使用中文宋體的9pt和11pt,px通常使用中文宋體12px和14px,這是通過優化的字號,黑體字或者宋體字加粗時,通常選用 11pt 和 14.7px的字號比較合適。
2. 大小爲9pt時,行距爲120%; 信息類最終頁面採用彈出方式,標題及正文字體規定爲11pt,行距爲140%,全部頁面字體大小建議不要超過11pt。
3.考慮字體大小的兼容性,避免使用size=2的方式定義,儘可能使用 pt 或者 px 並用css 定義 。
4. 文字顏色與頁面配色協調,不使用與背景相近的顏色
5. 非圖像設計的字體一概採用windows 標準宋體。(若是作特殊效果需作成圖)要加粗文字用 Blod,不要用strong。
6. 頁面文字不使用下劃線方式,也儘可能少採用粗體顯示。
l 變量與函數名採用駝峯式命名
l 常量使用全大寫,多個單詞如下劃線「_」分隔
l 關鍵字後空一格
l 等號兩邊各空一格
l 一行語句結束時必須添加「;」
l if-else語句塊必須添加「{}」,即便只有一行語句。
l 類中的方法應寫入類的prototype中,私有方法如下劃線「_」開頭。
示例:
var foo = function (params) {
if (params.length > 0) {
doSomthing(params);
}
};
function Student(name, gender) {
this.name = name;
this.gender = gender;
}
Student.prototype.study = function (course) {
doSomething();
};
JavaScript的文檔註釋採用JSDoc文檔註釋,全部公共函數、類都應該添加文檔註釋。關於JSDoc,具體請參看http://code.google.com/p/jsdoc-toolkit/w/list。
JSDoc示例:
/**
* @function 爲一個checkbox添加對一組checkbox的全選功能
* @param {String|Element} checkbox 目標element對象或id
* @param {String} checkBoxName 受控checkbox的name
* @param {String} [form] 受控checkbox所在表單的name或id,可選
*/
function addCheckAllFunction(checkbox checkboxName, form) {
}
儘量的將JS的引入位置放到body的結束標籤以前,以減小被JavaScript載入時阻塞頁面的狀況。有關JavaScript阻塞的問題,請參考附錄5.5。
儘可能避免在html中直接嵌入JavaScript。例如:
<button id=」okButton」 type=」button」 onclick=」ok();」>Button</button>
建議採起無干擾的JavaScript方式,在JavaScript中註冊該事件。有關無干擾的JavaScript技術,請參考附錄5.6。
儘可能不要在全局做用域下聲明變量或者函數。他們應該被組織在各自的業務命名空間下,或在一個匿名函數中。
對於必須使用的全局變量,變量名應以「$」開頭。
CSS Sprites其實就是把網頁中一些背景圖片整合到一張圖片文件中,再利用CSS的「background-image」,「background- repeat」,「background-position」的組合進行背景定位,background-position能夠用數字能精確的定位出背景圖片的位置。
利用CSS Sprites能很好地減小了網頁的http請求,從而大大的提升了頁面的性能,這也是CSS Sprites最大的優勢,也是其被普遍傳播和應用的主要緣由。
解決了網頁設計師在圖片命名上的困擾,只需對一張集合的圖片上命名就能夠了,不須要對每個小元素進行命名,從而提升了網頁的製做效率。
更換風格方便,只須要在一張或少張圖片上修改圖片的顏色或樣式,整個網頁的風格就能夠改變。維護起來更加方便。
<div id=」f_left」></div>
<div id=」f_right」></div>
<div id=」NOTfloatC」></div>
這裏的NOTfloatC並不但願繼續平移,而是但願往下排 (其中f_left、f_right的屬性已經設置爲「float:left,float:right;」) 。緣由是NOTfloatC沒有設置float屬性,必須將float標籤閉合。在 <div class=」f_right」> <div class=」NOTfloatC」>之間加上 <div class=」clear」>這個div必定要注意位置,並且必須與兩個具備float屬性的div同級,之間不能存在嵌套關係,不然會產生異常。 而且將clear這種樣式定義以下便可:
.clear{ clear:both;}
做爲外部wrapper的div不要定死高度,爲了讓高度能自動適應,要在wrapper裏面加上「overflow:hidden;」。當包含float的div的時候,高度自動適應在IE下無效,這時候應該觸發IE的layout私有屬性「zoom: 1;」,能夠解決這個問題。這樣就達到了兼容。
例如某一個wrapper以下定義:
.colwrapper { overflow: hidden; zoom:1; margin:5px auto;}
這裏還有另外一種方案添加閉合的方法,把須要閉合的div加上 class="clearfix" 便可,其定義以下:
.clearfix { display: inline-block; }
.clearfix:after {
content: ".";
display: block;
height :0px;
clear: both;
visibility: hidden;
}
/* Hide from IE Mac */
.clearfix {display: block;}
/* End hide from IE Mac */
/* end of clearfix */
或者這樣設置:
.hackbox{ display: table; /*將對象做爲塊元素級的表格顯示*/ }
CSS Hack是在標準CSS沒辦法兼容各瀏覽器顯示效果時纔會用上的補救方法,利用了各個瀏覽器對CSS的支持和解析結果不同的特色,例如: IE6能識別下劃線"_"和星號"*",IE7能識別星號"*",但不能識別下劃線"_",而Firefox兩個都不能識別。書寫順序通常是將識別能力強的瀏覽器的CSS寫在後面。好比:
div{
background: green; /* for firefox */
*background: blue; /* for IE7 */
_background: red; /* for IE6 */
}
這樣在Firefox中看到的背景是綠色,在IE7中看到的是藍色,而IE6中看到的是紅色。
利用這種方式,能夠解決多種因爲IE獨特的文檔渲染方式形成的問題。
條件註釋是微軟IE瀏覽器在HTML源代碼中被解釋的條件語句。最先出現於IE5,支持到IE8。條件註釋用於在IE瀏覽器中顯示或隱藏一段代碼。
<!--[if IE 6]>
<p>You are using Internet Explorer 6.</p>
<![endif]-->
<!--[if !IE]>-->
<p>You are not using Internet Explorer.</p>
<!--<![endif]-->
瀏覽器是按標籤來解析的,每解析一段標籤,就顯示這段標籤的內容。若是標籤引入了外部文件(如圖像),則會一邊繼續解析其餘標籤,一邊繼續下載該外部文件,直到載入完畢。
但瀏覽器在解析script標籤時,因爲JavaScript可能會改變瀏覽器內容,會中止全部頁面元素的載入,直到這段script代碼執行完畢。若是這個script標籤引入了一個來自外部服務器的js文件,而這個服務器訪問速度很慢,那麼頁面上其餘元素便都得等到這個js文件載入並執行完畢才能繼續載入。
無干擾的 JavaScript 的首要目標就是保持 JavaScript 代碼和 HTML 標記的分離。這種讓內容分離於形爲的方式,與將 CSS 放入樣式表而保持內容與表現分離的方式一模一樣。爲了實現這一目標,把全部的 JavaScript 代碼放到外部文件中。
無干擾的 JavaScript 的第二個目標是它必須下降優雅性。腳本應該基於增長 HTML 的內容來構思和設計,可是,即便沒有這些 JavaScript 代碼,內容也應該能用。
無干擾的 JavaScript 的第三個目標是,它不能下降一個 HTML 頁面的可訪問性。