Web命名規範

HTML編碼規範

(一)命名規則:



        頭:header    
        內容:content/container   
        尾: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      


    (二)註釋的寫法:


        /* Footer */
        內容區
        /* End Footer */


    (三)id的命名:


        (1)頁面結構
        容器: container
        頁頭:header
        內容:content/container
        頁面主體:main
        頁尾:footer
        導航:nav
        側欄:sidebar
        欄目:column
        頁面外圍控制整體佈局寬度:wrapper
        左右中:left right center


    (2)導航


        導航:nav
        主導航:mainbav
        子導航:subnav
        頂導航:topnav
        邊導航:sidebar
        左導航:leftsidebar
        右導航:rightsidebar
        菜單:menu
        子菜單:submenu
        標題: title
        摘要: summary


    (3)功能


        標誌:logo
        廣告:banner
        登陸:login
        登錄條:loginbar
        註冊:regsiter
        搜索:search
        功能區:shop
        標題:title
        加入:joinus
        狀態:status
        按鈕:btn
        滾動:scroll
        標籤頁:tab
        文章列表:list
        提示信息:msg
        當前的: current
        小技巧:tips
        圖標: icon
        註釋:note
        指南:guild
        服務:service
        熱點:hot
        新聞:news
        下載:download
        投票:vote
        合作伙伴:partner
        友情鏈接:link
        版權:copyright

</code>

web前端命名規範

一、規範目的

1.1  概述


爲提高團隊協作效率, 便於後臺人員添加功能及前端後期優化維護, 輸出高質量的文檔, 特制訂此文檔. 本規範文檔一經確認, 前端開發人員必須按本文檔規範進行前臺頁面開發. 本文檔如有不對或者不合適的地方請及時提出, 經討論決定後可以更改此文檔.


二、文件規範


2.1  文件命名規則


文件名稱統一用小寫的英文字母、數字和下劃線的組合,其中不得包含漢字、空格和特殊字符;命名原則的指導思想一是使得你自己和工作組的每一個成員能夠方便的理解每一個文件的意義,二是當我們在文件夾中使用“按名稱排例”的命令時,同一種大類的文件能夠排列在一起,以便我們查找、修改、替換、計算負載量等等操作。


a.  HTML的命名原則
引文件統一使用index.htm  index.html  index.asp文件名(小寫)
各子頁命名的原則首先應該以欄目名的英語翻譯取單一單詞爲名稱。例如:
關於我們 \ aboutus
信息反饋 \ feedback
產 品 \ product


如果欄目名稱多而複雜並不好以英文單詞命名,則統一使用該欄目名稱拼音或拼音的首字母表示;
每一個目錄中應該包含一個缺省的html 文件,文件名統一用index.htm  index.html  index.asp;


b.  圖片的命名原則


圖片的名稱分爲頭尾兩部分,用下劃線隔開,頭部分表示此圖片的大類性質
例如:廣告、標誌、菜單、按鈕等等。
放置在頁面頂部的廣告、裝飾圖案等長方形的圖片取名: banner
標誌性的圖片取名爲: logo
在頁面上位置不固定並且帶有鏈接的小圖片我們取名爲 button
在頁面上某一個位置連續出現,性質相同的鏈接欄目的圖片我們取名: menu
裝飾用的照片我們取名: pic
不帶鏈接表示標題的圖片我們取名: title
範例:banner_sohu.gif  banner_sina.gif  menu_aboutus.gif  menu_job.gif  title_news.gif  logo_police.gif   logo_national.gif   pic_people.jpg
鼠標感應效果圖片命名規範爲”圖片名+_+on/off”。
例如:menu1_on.gif  menu1_off.gif


c.  javascript的命名原則
例如:廣告條的javascript文件名爲 ad.js  彈出窗口的javascript文件名爲 pop.js


d.  動態語言文件命名原則
以性質_描述,描述可以有多個單詞,用“_”隔開,性質一般是該頁面得概要。
範例:register_form.asp   register_post.asp   topic_lock.asp


2.2  文件存放位置規範


_Root       
cn  存放中文HTML文件
en  存放英文HTML文件
flash   存放Flash文件
images  存放圖片文件
imagestudio 存放PSD源文件
flashstudio 存放flash源文件
inc 存放include文件
library 存放DW庫文件
media   存放多媒體文件
project 存放工程項目資料
temp    存放客戶原始資料
js  存放JavaScript腳本
css 存放CSS文件
2.3  CSS 書寫規範
基本原則:


CSS樣式可細分爲3類:自定義樣式、重新定義HTML樣式、鏈接狀態樣式。


1. 樣式爲設計師自定義的新 CSS 樣式,影響被使用本樣式的區域,用於完成網頁中局部的樣式設定。樣式名 “.”+“相應樣式效果描述的單詞或縮寫”例:“ .shadow ”
文字樣式樣式名“.no”+“字號”+“行距”+“顏色縮寫”例:“ .no12 ” 、“ .no12-24 ”


2. 義HTML樣式爲設計師重新定義已有的HTML標籤樣式,影響全部的被設定標籤樣式,用於統一網頁中某一標籤的樣式定義。樣式名“HTML標籤”例:hr { border: 1px dotted #333333 }


3. 態樣式爲設計師對鏈接不同狀態設定特殊樣式,影響被使用本樣式區域中的鏈接。
該樣式寫法有2種: a.nav:link    nav.a:link  第一種只能修飾<span class="hljs-tag">&lt;<span class="hljs-title">a</span>&gt;</span>標籤中;第二種可以修飾所有包含有<span class="hljs-tag">&lt;<span class="hljs-title">a</span>&gt;</span>標籤的其他標籤。


頁面內的樣式加載必須用鏈接方式<span class="hljs-tag">&lt;<span class="hljs-title">link</span> <span class="hljs-attribute">rel</span>=<span class="hljs-value">”stylesheet”</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">”text</span>/<span class="hljs-attribute">css</span>” <span class="hljs-attribute">href</span>=<span class="hljs-value">”style</span>/<span class="hljs-attribute">style.css</span>”&gt;</span>


注意細則:


1. 協作開發及分工: i會根據各個模塊, 同時根據頁面相似程序, 事先寫好大體框架文件, 分配給前端人員實現內部結構&amp;表現&amp;行爲; 共用css文件base.css由i書寫, 協作開發過程中, 每個頁面請務必都要引入, 此文件包含reset及頭部底部樣式, 此文件不可隨意修改;


2. class與id的使用: id是唯一的並是父級的, class是可以重複的並是子級的, 所以id僅使用在大的模塊上, class可用在重複使用率高及子級中; id原則上都是由我分發框架文件時命名的, 爲JavaScript預留鉤子的除外;


3. 爲JavaScript預留鉤子的命名, 請以 js_ 起始, 比如: js_hide, js_show;


4. class與id命名: 大的框架命名比如header/footer/wrapper/left/right之類的在2中由i統一命名.其他樣式名稱由 小寫英文 &amp; 數字 &amp; _ 來組合命名, 如i_comment, fontred, width200; 避免使用中文拼音, 儘量使用簡易的單詞組合; 總之, 命名要語義化, 簡明化.


5. 規避class與id命名(此條重要, 若有不明白請及時與i溝通):


a, 通過從屬寫法規避, 示例見d;


b, 取父級元素id/class命名部分命名, 示例見d;


c, 重複使用率高的命名, 請以自己代號加下劃線起始, 比如i_clear;


d, a,b兩條, 適用於在2中已建好框架的頁面, 如, 要在2中已建好框架的頁面代碼<span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">”mainnav”</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span>中加入新的div元素,


按a命名法則: <span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">”mainnav”</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">”firstnav”</span>&gt;</span>…<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span>,


樣式寫法:  #mainnav  .firstnav{…….}


按b命名法則: <span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">”mainnav”</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">”main_firstnav”</span>&gt;</span>…<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span>,
樣式寫法:  .main_firstnav{…….}


6. css屬性書寫順序, 建議遵循 佈局定位屬性–&gt;自身屬性–&gt;文本屬性–&gt;其他屬性. 此條可根據自身習慣書寫, 但儘量保證同類屬性寫在一起. 屬性列舉: 佈局定位屬性主要包括: margin、padding、float(包括clear)、position(相應的 top,right,bottom,left)、display、visibility、overflow等;自身屬性主要包括: width &amp; height &amp; background &amp; border; 文本屬性主要包括:font、color、text-align、text-decoration、text-indent等;其他屬性包括: list-style(列表樣式)、vertical-vlign、cursor、z-index(層疊順序) 、zoom等.我所列出的這些屬性只是最常用到的, 並不代表全部;


7. 書寫代碼前, 考慮並提高樣式重複使用率;


8. 充分利用html自身屬性及樣式繼承原理減少代碼量, 比如:


<span class="hljs-tag">&lt;<span class="hljs-title">ul</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">”list”</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-title">li</span>&gt;</span>這兒是標題列表<span class="hljs-tag">&lt;<span class="hljs-title">span</span>&gt;</span>2010-09-15<span class="hljs-tag">&lt;/<span class="hljs-title">span</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-title">ul</span>&gt;</span>


定義ul.list li{position:relative}  ul.list li span{position:absolute; right:0}


即可實現日期居右顯示


9. 樣式表中中文字體名, 請務必轉碼成unicode碼, 以避免編碼錯誤時亂碼;


10. 背景圖片請儘可能使用sprite技術, 減小http請求, 考慮到多人協作開發, sprite按模塊製作;


11. 使用table標籤時(儘量避免使用table標籤), 請不要用width/ height/cellspacing/cellpadding等table屬性直接定義表現, 應儘可能的利用table自身私有屬性分離結構與表現, 如thead,tr,th,td,tbody,tfoot,colgroup,scope; (cellspaing及cellpadding的css控制方法: table{border:0;margin:0;border-collapse:collapse;} table th, table td{padding:0;} , base.css文件中我會初始化表格樣式)


12. 杜絕使用<span class="hljs-tag">&lt;<span class="hljs-title">meta</span> <span class="hljs-attribute">http-equiv</span>=<span class="hljs-value">”X-UA-Compatible”</span> <span class="hljs-attribute">content</span>=<span class="hljs-value">”IE=7″</span> /&gt;</span> 兼容ie8;


13. 用png圖片做圖片時, 要求圖片格式爲png-8格式,若png-8實在影響圖片質量或其中有半透明效果, 請爲ie6單獨定義背景:


background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=crop, src=’img/bg.png’);


14. 避免兼容性屬性的使用, 比如text-shadow || css3的相關屬性;


15. 減少使用影響性能的屬性, 比如position:absolute || float ;


16. 必須爲大區塊樣式添加註釋, 小區塊適量註釋;


17. 代碼縮進與格式: 建議單行書寫, 可根據自身習慣, 後期優化i會統一處理;


命名規則:


頭:header


內容:content/container


尾: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


(二)註釋的寫法:


/* Footer */


內容區


/* End Footer */


(三)id的命名:


(1)頁面結構


容器: container


頁頭:header


內容:content/container


頁面主體:main


頁尾:footer


導航:nav


側欄:sidebar


欄目:column


頁面外圍控制整體佈局寬度:wrapper


左右中:left right center






(2)導航


導航:nav


主導航:mainbav


子導航:subnav


頂導航:topnav


邊導航:sidebar


左導航:leftsidebar


右導航:rightsidebar


菜單:menu


子菜單:submenu


標題: title


摘要: summary






(3)功能


標誌:logo


廣告:banner


登陸:login


登錄條:loginbar


註冊:regsiter


搜索:search


功能區:shop


標題:title


加入:joinus


狀態:status


按鈕:btn


滾動:scroll


標籤頁:tab


文章列表:list


提示信息:msg


當前的: current


小技巧:tips


圖標: icon


註釋:note


指南:guild


服務:service


熱點:hot


新聞:news


下載:download


投票:vote


合作伙伴:partner


友情鏈接:link


版權:copyright\


基本樣式: 


/* CSS Document */


body {margin:0; padding:0; font:12px “\5B8B\4F53″,san-serif;background:#fff;}


div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,blockquote,p{padding:0; margin:0;}


table,td,tr,th{font-size:12px;}


li{list-style-type:none;}


img{vertical-align:top;border:0;}


ol,ul {list-style:none;}


h1,h2,h3,h4,h5,h6 {font-size:12px; font-weight:normal;}


address,cite,code,em,th {font-weight:normal; font-style:normal;}


.fB{font-weight:bold;}


.f12px{font-size:12px;}


.f14px{font-size:14px;}


.left{float:left;}


.right{float:right;}






a {color:#2b2b2b; text-decoration:none;}


a:visited {text-decoration:none;}


a:hover {color:#ba2636;text-decoration:underline;}


a:active {color:#ba2636;}



重定義的最先,僞類其次,自定義最後,便於自己和他人閱讀!






不同瀏覽器上字號保持一致,字號建議用點數pt和像素px來定義,pt一般使用中文宋體的9pt 和11pt,px一般使用中文宋體12px 和14.7px 這是經過優化的字號,黑體字或者宋體字加粗時,一般選用11pt 和14.7px 的字號比較合適。中英文混排時,我們儘可能的將英文和數字定義爲verdana 和arial 兩種字體。


2.4  html 書寫規範


1. 網頁製作細節 —- head區代碼規範


head區是指HTML代碼的<span class="hljs-tag">&lt;<span class="hljs-title">head</span>&gt;</span>和<span class="hljs-tag">&lt;/<span class="hljs-title">head</span>&gt;</span>之間的內容。


必須加入的標籤


a) 公司版權註釋  <span class="hljs-tag">&lt;<span class="hljs-title">!—</span> <span class="hljs-attribute">The</span> <span class="hljs-attribute">site</span> <span class="hljs-attribute">is</span> <span class="hljs-attribute">designed</span> <span class="hljs-attribute">by</span> <span class="hljs-attribute">EHM</span>,<span class="hljs-attribute">Inc</span> <span class="hljs-attribute">07</span>/<span class="hljs-attribute">2005</span> —&gt;</span>


b) 網頁顯示字符集


簡體中文:<span class="hljs-tag">&lt;<span class="hljs-title">META</span> <span class="hljs-attribute">HTTP-EQUIV</span>=<span class="hljs-value">”Content-Type”</span> <span class="hljs-attribute">CONTENT</span>=<span class="hljs-value">”text</span>/<span class="hljs-attribute">html</span>; <span class="hljs-attribute">charset</span>=<span class="hljs-value">gb2312″</span>&gt;</span>


繁體中文:<span class="hljs-tag">&lt;<span class="hljs-title">META</span> <span class="hljs-attribute">HTTP-EQUIV</span>=<span class="hljs-value">”Content-Type”</span> <span class="hljs-attribute">CONTENT</span>=<span class="hljs-value">”text</span>/<span class="hljs-attribute">html</span>; <span class="hljs-attribute">charset</span>=<span class="hljs-value">utf-8″</span>&gt;</span>


英 語:<span class="hljs-tag">&lt;<span class="hljs-title">META</span> <span class="hljs-attribute">HTTP-EQUIV</span>=<span class="hljs-value">”Content-Type”</span> <span class="hljs-attribute">CONTENT</span>=<span class="hljs-value">”text</span>/<span class="hljs-attribute">html</span>; <span class="hljs-attribute">charset</span>=<span class="hljs-value">utf-8″</span>&gt;</span>


c) 網頁製作者信息  <span class="hljs-tag">&lt;<span class="hljs-title">META</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">”author”</span> <span class="hljs-attribute">content</span>=<span class="hljs-value">”[email protected]”</span>&gt;</span>


d) 網站簡介  <span class="hljs-tag">&lt;<span class="hljs-title">META</span> <span class="hljs-attribute">NAME</span>=<span class="hljs-value">”DESCRIPTION”</span> <span class="hljs-attribute">CONTENT</span>=<span class="hljs-value">”xxxxxxxxxxxxxxxxxxxxxxxxxx”</span>&gt;</span>


e) 搜索關鍵字  <span class="hljs-tag">&lt;<span class="hljs-title">META</span> <span class="hljs-attribute">NAME</span>=<span class="hljs-value">”keywords”</span> <span class="hljs-attribute">CONTENT</span>=<span class="hljs-value">”xxxx,xxxx,xxx,xxxxx,xxxx,”</span>&gt;</span>


f) 網頁的css規範  <span class="hljs-tag">&lt;<span class="hljs-title">LINK</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">”..</span>/<span class="hljs-attribute">css</span>/<span class="hljs-attribute">style.css</span>” <span class="hljs-attribute">rel</span>=<span class="hljs-value">”stylesheet”</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">”text</span>/<span class="hljs-attribute">css</span>”&gt;</span>


g) 網頁標題  <span class="hljs-tag">&lt;<span class="hljs-title">title</span>&gt;</span>xxxxxxxxxxxxxxxxxx<span class="hljs-tag">&lt;/<span class="hljs-title">title</span>&gt;</span>


可以選擇加入的標籤


a) 設定網頁的到期時間。一旦網頁過期,必須到服務器上重新調閱。


<span class="hljs-tag">&lt;<span class="hljs-title">META</span> <span class="hljs-attribute">HTTP-EQUIV</span>=<span class="hljs-value">”expires”</span> <span class="hljs-attribute">CONTENT</span>=<span class="hljs-value">”Wed,</span> <span class="hljs-attribute">26</span> <span class="hljs-attribute">Feb</span> <span class="hljs-attribute">1997</span> <span class="hljs-attribute">08</span>:<span class="hljs-attribute">21</span>:<span class="hljs-attribute">57</span> <span class="hljs-attribute">GMT</span>”&gt;</span>


b) 禁止瀏覽器從本地機的緩存中調閱頁面內容。


<span class="hljs-tag">&lt;<span class="hljs-title">META</span> <span class="hljs-attribute">HTTP-EQUIV</span>=<span class="hljs-value">”Pragma”</span> <span class="hljs-attribute">CONTENT</span>=<span class="hljs-value">”no-cache”</span>&gt;</span>


c) 用來防止別人在框架裏調用你的頁面。


<span class="hljs-tag">&lt;<span class="hljs-title">META</span> <span class="hljs-attribute">HTTP-EQUIV</span>=<span class="hljs-value">”Window-target”</span> <span class="hljs-attribute">CONTENT</span>=<span class="hljs-value">”_top”</span>&gt;</span>


d) 自動跳轉。


<span class="hljs-tag">&lt;<span class="hljs-title">META</span> <span class="hljs-attribute">HTTP-EQUIV</span>=<span class="hljs-value">”Refresh”</span> <span class="hljs-attribute">CONTENT</span>=<span class="hljs-value">”5;URL=http:</span>//<span class="hljs-attribute">www.yahoo.com</span>”&gt;</span>  5指時間停留5秒


e) 網頁搜索機器人嚮導。用來告訴搜索機器人哪些頁面需要索引,哪些頁面不需要索引。


<span class="hljs-tag">&lt;<span class="hljs-title">META</span> <span class="hljs-attribute">NAME</span>=<span class="hljs-value">”robots”</span> <span class="hljs-attribute">CONTENT</span>=<span class="hljs-value">”none”</span>&gt;</span>


CONTENT的參數有all,none,index,noindex,follow,nofollow。默認是all。


f) 收藏夾圖標  <span class="hljs-tag">&lt;<span class="hljs-title">link</span> <span class="hljs-attribute">rel</span> = “<span class="hljs-attribute">Shortcut</span> <span class="hljs-attribute">Icon</span>” <span class="hljs-attribute">href</span>=<span class="hljs-value">”favicon.ico”</span>&gt;</span>


g) 所有的javascript的調用盡量採取外部調用.


<span class="hljs-tag">&lt;<span class="hljs-title">SCRIPT</span> <span class="hljs-attribute">LANGUAGE</span>=<span class="hljs-value">”JavaScript”</span> <span class="hljs-attribute">SRC</span>=<span class="hljs-value">”script</span>/<span class="hljs-attribute">xxxxx.js</span>”&gt;</span><span class="javascript"></span><span class="hljs-tag">&lt;/<span class="hljs-title">SCRIPT</span>&gt;</span>


h) 附<span class="hljs-tag">&lt;<span class="hljs-title">body</span>&gt;</span>標籤:


<span class="hljs-tag">&lt;<span class="hljs-title">body</span>&gt;</span>標籤不屬於head區,這裏強調一下,爲了保證瀏覽器的兼容性,必須設置頁面背景<span class="hljs-tag">&lt;<span class="hljs-title">body</span> <span class="hljs-attribute">bgcolor</span>=<span class="hljs-value">”#FFFFFF”</span>&gt;</span>






2. 網頁製作細節 —- 字體
1. 在設定字體樣式時對於文字字號樣式和行間距應必須使用CSS樣式表。禁止在頁面中出現 <span class="hljs-tag">&lt;<span class="hljs-title">font</span> <span class="hljs-attribute">size</span>=<span class="hljs-value">?</span>&gt;</span> 標記。


2.在網頁中中文應首選使用宋體。英文和數字首選使用verdana 和arial 兩種字體。一般使用中文宋體的9pt 和11pt 或12px 和14.7px 這是經過優化的字號,黑體字或者宋體字加粗時,一般選用11pt 和14.7px 的字號比較合適。


3. 爲了最大程度的發揮瀏覽器自動排版的功能,在一段完整的文字中請儘量不要使用<span class="hljs-tag">&lt;<span class="hljs-title">br</span>&gt;</span> 來人工干預分段。


4.不同語種的文字之間應該有一個半角空格,但避頭的符號之前和避尾的符號之後除外,漢字之間的標點要用全角標點,英文字母和數字周圍的括號應該使用半角括號。


5. 請不要在網頁中連續出現多於一個的   也儘量少使用全角空格(英文字符集下,全角空格會變成亂碼),空白應該儘量使用 text-indent, padding, margin, hspace, vspace 以及透明的gif 圖片來實現。


6. 行距建議用百分比來定義,常用的兩個行距的值是line-height:120%/150%.


7. 排版中我們經常會遇到需要進行首行縮進的處理,不要使用   或者全角空格來達到效果,規範的做法是在樣式表中定義 p { text-indent: 2em; } 然後給每一段加上 <span class="hljs-tag">&lt;<span class="hljs-title">p</span>&gt;</span> 標記,注意,一般情況下,請不要省略 <span class="hljs-tag">&lt;/<span class="hljs-title">p</span>&gt;</span> 結束標記 。






3. 網頁製作細節 —- 鏈接
1. 網站中的鏈接路徑全部採用相對路徑,一般鏈接到某一目錄下的缺省文件的鏈接路徑不必寫全名,如我們不必這樣:<span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">”aboutus</span>/<span class="hljs-attribute">index.htm</span>”&gt;</span> 而應該這樣:<span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">”aboutus</span>/”&gt;</span>,所有內頁指向首頁的鏈接寫成<span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">”</span>/”&gt;</span>


2. 在瀏覽器裏,當我們點擊空鏈接時,它會自動將當前頁面重置到首端,從而影響用戶正常的閱讀內容,我們用代碼“javascript:void(null)”代替原來的“#”標記






4. 網頁製作細節 —- 表格
1px表格 style=”border-collapse: collapse”
實例如下:
<span class="hljs-tag">&lt;<span class="hljs-title">table</span> <span class="hljs-attribute">border</span>=<span class="hljs-value">”1″</span> <span class="hljs-attribute">cellspacing</span>=<span class="hljs-value">”0″</span> <span class="hljs-attribute">width</span>=<span class="hljs-value">”32″</span> <span class="hljs-attribute">height</span>=<span class="hljs-value">”32″</span> <span class="hljs-attribute">style</span>=<span class="hljs-value">”border-collapse:</span> <span class="hljs-attribute">collapse</span>”
<span class="hljs-attribute">bordercolor</span>=<span class="hljs-value">”#000000″</span> <span class="hljs-attribute">cellpadding</span>=<span class="hljs-value">”0″</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">tr</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">tr</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">table</span>&gt;</span>
設置亮、暗邊框顏色
表格有亮邊框(bordercolorlight)和暗邊框(bordercolordark)兩個屬性可以對錶格樣式設置。
<span class="hljs-tag">&lt;<span class="hljs-title">table</span> <span class="hljs-attribute">border</span>=<span class="hljs-value">”1″</span> <span class="hljs-attribute">width</span>=<span class="hljs-value">”500″</span> <span class="hljs-attribute">bordercolorlight</span>=<span class="hljs-value">”#000000″</span> <span class="hljs-attribute">bordercolordark</span>=<span class="hljs-value">”#FFFFFF”</span>&gt;</span>


在寫 <span class="hljs-tag">&lt;<span class="hljs-title">table</span>&gt;</span> 互相嵌套時,嚴格按照的規範,對於單獨的一個<span class="hljs-tag">&lt;<span class="hljs-title">table</span>&gt;</span>來說,<span class="hljs-tag">&lt;<span class="hljs-title">table</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-title">tr</span>&gt;</span>對齊,<span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span> 縮進兩個半角空格,<span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span> 中如果還有嵌套的表格,<span class="hljs-tag">&lt;<span class="hljs-title">table</span>&gt;</span>也縮進兩個半角空格,如果<span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>中沒有任何嵌套的表格,<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span> 結束標記應該與 <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span> 處於同一行,不要換行,
如我們注意在源代碼中不應有這樣的代碼:
<span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-title">img</span> <span class="hljs-attribute">src</span>=<span class="hljs-value">”..</span>/<span class="hljs-attribute">images</span>/<span class="hljs-attribute">sample.gif</span>”&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span>
而應該是這樣的:
<span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-title">img</span> <span class="hljs-attribute">src</span>=<span class="hljs-value">”..</span>/<span class="hljs-attribute">images</span>/<span class="hljs-attribute">sample.gif</span>”&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span>
這是因爲瀏覽器認爲換行相當於一個半角空格,以上不規範的寫法相當於無意中增加一個半角空格,如果確實有必要增加一個半角空格,也應該這樣寫:
<span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-title">img</span> <span class="hljs-attribute">src</span>=<span class="hljs-value">”..</span>/<span class="hljs-attribute">images</span>/<span class="hljs-attribute">sample.gif</span>”&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span>


一個網頁要儘量避免用整個一張大表格,所有的內容都嵌套在這個大表格之內,因爲瀏覽器在解釋頁面的元素時,是以表格爲單位逐一顯示,如果一張網頁是嵌套在一個大表格之內,那麼很可能造成的後果就是,當瀏覽者敲入網址,他要先面對一片空白很長時間,然後所有的網頁內容同時出現。如果必須這樣做,請使用 <span class="hljs-tag">&lt;<span class="hljs-title">tbody</span>&gt;</span>標記,以便能夠使這個大表格分塊顯示






5. 網頁製作細節 —- 下載速度
首頁Flash 網頁大小應限定在 200K 以下,儘可能的使用矢量圖形和Action來減小動畫大小。非首頁靜態頁面含圖片大小應限定在 70K 左右,儘可能的使用背景顏色替換大塊同色圖片。






6. 網頁製作細節 —- include
asp標準寫法 <span class="hljs-tag">&lt;<span class="hljs-title">!–#include</span> <span class="hljs-attribute">file</span>=<span class="hljs-value">”inc</span>/<span class="hljs-attribute">index_top.asp</span>” –&gt;</span>
jsp 標準寫法 <span class="vbscript">&lt;%@ include file=”../inc/index_top..jsp” %&gt;</span>






7. 網頁製作細節 —- Alt和Title
都是提示性語言標籤,請注意它們之間的區別。


在我們瀏覽網頁時,當鼠標停留在圖片對象或文字鏈接上時,在鼠標的右下角有時會出現一個提示信息框。對目標進行一定的註釋說明。在一些場合,它的作用是很重要的。


alt 用來給圖片來提示的。Title用來給鏈接文字或普通文字提示的。


用法如下:


<span class="hljs-tag">&lt;<span class="hljs-title">p</span> <span class="hljs-attribute">Title</span>=<span class="hljs-value">”給鏈接文字提示”</span>&gt;</span>文字<span class="hljs-tag">&lt;/<span class="hljs-title">p</span>&gt;</span>


<span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">”#”</span> <span class="hljs-attribute">Title</span>=<span class="hljs-value">”給鏈接文字提示”</span>&gt;</span>文字<span class="hljs-tag">&lt;/<span class="hljs-title">a</span>&gt;</span>


<span class="hljs-tag">&lt;<span class="hljs-title">img</span> <span class="hljs-attribute">src</span>=<span class="hljs-value">”圖片.gif”</span> <span class="hljs-attribute">alt</span>=<span class="hljs-value">”給圖片提示”</span>&gt;</span>


8. 網頁製作細節 —- 緩存


網頁不會被緩存


HTM網頁


<span class="hljs-tag">&lt;<span class="hljs-title">META</span> <span class="hljs-attribute">HTTP-EQUIV</span>=<span class="hljs-value">”pragma”</span> <span class="hljs-attribute">CONTENT</span>=<span class="hljs-value">”no-cache”</span>&gt;</span>


<span class="hljs-tag">&lt;<span class="hljs-title">META</span> <span class="hljs-attribute">HTTP-EQUIV</span>=<span class="hljs-value">”Cache-Control”</span> <span class="hljs-attribute">CONTENT</span>=<span class="hljs-value">”no-cache,</span> <span class="hljs-attribute">must-revalidate</span>”&gt;</span>


<span class="hljs-tag">&lt;<span class="hljs-title">META</span> <span class="hljs-attribute">HTTP-EQUIV</span>=<span class="hljs-value">”expires”</span> <span class="hljs-attribute">CONTENT</span>=<span class="hljs-value">”0″</span>&gt;</span>


ASP網頁


Response.Expires = -1


Response.ExpiresAbsolute = Now() – 1


Response.cachecontrol = “no-cache”


9. 網頁製作細節 —- 瀏覽器兼容性
創建站點時,應該明白訪問者可能使用各種 Web 瀏覽器。在已知的其他設計限制下,儘可能將站點設計爲具有最大的瀏覽器兼容性。
目前使用的 Web 瀏覽器有二十多種,大多數已發行了多個版本。即使您只針對使用 Netscape Navigator 和 Microsoft Internet Explorer 的大多數 Web 用戶,但您應明確並不是每個人都在使用這兩種瀏覽器的最新版本。
您的站點越複雜(在佈局、動畫、多媒體內容和交互方面),跨瀏覽器兼容的可能性就越小。例如,並非所有的瀏覽器都可以運行JavaScript。不使用特殊字符的純文本頁面或許能夠在任何瀏覽器中正確顯示,但比起有效地使用圖形、佈局和交互的頁面,這樣的頁面在美感上可能要差得多。所以,應儘量在最佳效果設計和最大瀏覽器兼容性設計之間取得平衡。
所有的HTML 標籤的屬性都要用單引號或者雙引號括起,即我們應該寫 <span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">”url”</span>&gt;</span> 而不 是 <span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">url</span>&gt;</span>.

10. 圖片處理細節 —- banner
全尺寸banner爲468X60px,半尺寸banner爲234X60px,小banner爲88X31px。
另外120X90,120X60也是小圖標的標準尺寸。全尺寸banner不超過14K。
普遍的banner尺寸760X100,750X120,468X60,468X95,728X90,585X140
次級頁的pip尺寸360X300,336X280
遊標:100X100或120X120

11. 圖片處理細節 —- LOGO的國際標準規範
爲了便於INTERNET上信息的傳播,一個統一的國際標準是需要的。實際上已經有了這樣的一整套標準。其中關於網站的LOGO,目前有三種規格:
88*31 這是互聯網上最普遍的LOGO規格。
120*60 這種規格用於一般大小的LOGO。
120*90 這種規格用於大型LOGO。

12. 圖片處理細節 —- 頁面修飾圖片處理
圖片經過優化以加快下載的速度,有較佳的視覺空間效果,用圖要與頁面風格、頁面內容相符;製作精美,細節處理得當。

2.5  JavaScript書寫規範

1. 書寫過程中, 每行代碼結束必須有分號; 原則上所有功能均根據XXX項目需求原生開發, 以避免網上down下來的代碼造成的代碼污染(沉冗代碼 || 與現有代碼衝突 || …);


2. 庫引入: 原則上僅引入jQuery庫, 若需引入第三方庫, 須與團隊其他人員討論決定;

3. 變量命名: 駝峯式命名. 原生JavaScript變量要求是純英文字母, 首字母須小寫, 如iTaoLun; jQuery變量要求首字符爲’_’, 其他與原生JavaScript 規則相同, 如: _iTaoLun; 另, 要求變量集中聲明, 避免全局變量.

4. 類命名: 首字母大寫, 駝峯式命名. 如 ITaoLun;

5. 函數命名: 首字母小寫駝峯式命名. 如iTaoLun();

6. 命名語義化, 儘可能利用英文單詞或其縮寫;

7. 儘量避免使用存在兼容性及消耗資源的方法或屬性, 比如eval() &amp; innerText;

8. 後期優化中, JavaScript非註釋類中文字符須轉換成unicode編碼使用, 以避免編碼錯誤時亂碼顯示;

9. 代碼結構明瞭, 加適量註釋. 提高函數重用率;

10. 注重與html分離, 減小reflow, 注重性能.



2.6   圖片規範

1. 所有頁面元素類圖片均放入img文件夾, 測試用圖片放於img/demoimg文件夾;

2. 圖片格式僅限於gif || png || jpg;

3. 命名全部用小寫英文字母 || 數字 || _ 的組合,其中不得包含漢字 || 空格 || 特殊字符;儘量用易懂的詞彙, 便於團隊其他成員理解; 另, 命名分頭尾兩部分, 用下劃線隔開, 比如ad_left01.gif || btn_submit.gif;

4. 在保證視覺效果的情況下選擇最小的圖片格式與圖片質量, 以減少加載時間;

5. 儘量避免使用半透明的png圖片(若使用, 請參考css規範相關說明);

6. 運用css sprite技術集中小的背景圖或圖標, 減小頁面http請求, 但注意, 請務必在對應的sprite psd源圖中劃參考線, 並保存至img目錄下.



2.7  註釋規範


1. html註釋: 註釋格式 <span class="hljs-tag">&lt;<span class="hljs-title">!–這兒是註釋–</span>&gt;</span>, ‘–‘只能在註釋的始末位置,不可置入註釋文字區域;

2. css註釋: 註釋格式 /*這兒是註釋*/;

3. JavaScript註釋, 單行註釋使用’//這兒是單行註釋’ ,多行註釋使用 /* 這兒有多行註釋 */;


2.8  瀏覽器兼容性 CSS hack




一、標識區別:
區別IE6,IE7,IE8,FF。
1. IE都能識別* ; 標準瀏覽器(如FF)不能識別*;


2. IE6能識別*,但不能識別 !important; IE6在樣式前面加_


3. IE7能識別*,也能識別!important;


4. IE8能識別\ 9 例如:background:red \9;


5. firefox不能識別*,但能識別!important;






1.IE6和firefox的區別:
background:orange;*background:blue;
意思就是火狐瀏覽器的背景顏色是橙色,而IE瀏覽器的背景色是藍色.


2. IE6和IE7的區別:
background:green !important;background:blue;
意思指的是:IE7的背景顏色是綠色,IE6的背景顏色是藍色


3. IE7和FF的區別:
background:orange; *background:green;
意思指的是:火狐瀏覽器的背景顏色是橙色,而IE7的背景顏色是綠色


4. FF,IE7,IE6的區別:
background:orange;
*background:green !important;
*background:blue;
意思是火狐瀏覽器的的背景橙色,IE7瀏覽器的背景顏色是綠色,而IE6瀏覽器的顏色是藍色.


二、實踐建議


(1).  開發平臺的選擇


在 Firefox 上編寫CSS, 同時兼容其他瀏覽器的. 這樣做肯定會比在 IE 做好再到別的瀏覽器兼容來得容易, 因爲 IE 對老標準支持還是很不錯的, 而 IE 的一些特有功能人家卻不支持. 所以推薦以 Firefox 結合 Firebug 擴展作爲平臺。


(2).  CSS Hack 的順序


使用 Firefox 作爲平臺, 只要代碼寫得夠標準, 其實要 Hack 的地方不會很多的, IE 以外的瀏覽器幾乎都不會有問題, 所以可以暫時忽略,


順序如下:Firefox -&gt; IE6 -&gt; IE7 -&gt; 其他


(3).   Hack 的方法


說到方法有兩種, 一種是在不同文件中處理, 另一種則是在同一個文件中處理. 其實作用是相同的, 只是出發點不一樣而已.


1. 同一文件中處理.
如: id=”bgcolor”的控件要在 IE6中顯示藍色, IE7中顯示綠色, Firefox等其他瀏覽器中顯示紅色。






IE6不認 !important,也不認 *+html.所以 IE6只能是 blue.
IE7認 !important,也認 *+html,優先度: (*+html + !important) &gt; !important &gt; +html. IE7可以是 red, blue和 green,但 green的優先度最高.
Firefox和其他瀏覽器都認 !important. !important優先, Firefox可以是 red和 blue,但 red優先度高.上述的優先符號均是 CSS3標準允許的,其他瀏覽器也還有其他的 Hack方法,但我迄今還沒遇到過 Firefox正常, IE以外的其他瀏覽器不正常的情況,所以無可分享.只要代碼規範,相信這種情況的發生應該是很罕見 (JavaScript除外).


2. 不同文件中處理.
爲什麼同一文件中可以處理還要寫在多個文件裏面針對不同的瀏覽器?這是爲了欺騙 W3C的驗證工具,其實只需要兩個文件,一個是針對所有瀏覽器的,一個只爲 IE服務.將所有符合 W3C的代碼寫到一個裏面去,而一些 IE中必須的,又不能通過 W3C驗證的代碼 (如: cursor:hand;)放到另一個文件中,再用下面的方法導入.


========================================================================================


Web 目錄結構規範:
目錄建立的原則:以最少的層次提供最清晰簡便的訪問結構。
目錄的命名以小寫英文字母,下劃線組成。
根目錄一般只存放htm以及其他必須的系統文件
根目錄下的images用於存放各頁面都要使用的公用圖片。
所有JS等腳本存放在根目錄下的scripts或js目錄
所有CSS文件存放在根目錄下style或css目錄
多語言版本存放於獨立的目錄。例如:簡體中文存放在cn目錄下,繁體中文存放在 tw目錄下,英文存放在en目錄下等。
所有flash, avi, ram, quicktime 等多媒體文件存放在根目錄下的media目錄下。




Web UI設計命名規範:
2.1 Web 界面設計最佳尺寸


960網格系統——web界面設計最佳尺寸


目前絕大多數顯示器都支持 1024 x 768 及其以上分辨率。爲了有效的利用屏幕寬度同時保證柵格的靈活度,可以看出960是非常合適的。這樣,在目前主流顯示器下,960就成爲網頁柵格系統中的最佳寬度了。






2.2 網站設計及基本框架結構






Container
“container“ 就是將頁面中的所有元素包在一起的部分,這部分還可以命名爲: “wrapper“, “wrap“, “page“.


Header
“header” 是網站頁面的頭部區域,一般來講,它包含網站的logo和一些其他元素。這部分還可以命名爲:“page-header” (或 pageHeader).


Navbar
“navbar“等同於橫向的導航欄,是最典型的網頁元素。這部分還可以命名爲:“nav”, “navigation”, “nav-wrapper”.


Menu
“Menu”區域包含一般的鏈接和菜單,這部分還可以命名爲: “subNav “, “links“,“sidebar-main”.


Main
“Main”是網站的主要區域,如果是博客的話它將包含的日誌。這部分還可以命名爲: “content“, “main-content” (或“mainContent”)。


Sidebar
“Sidebar” 部分可以包含網站的次要內容,比如最近更新內容列表、關於網站的介紹或廣告元素等…這部分還可以命名爲: “subNav “, “side-panel“, “secondary-content“.


Footer
“Footer”包含網站的一些附加信息,這部分還可以命名爲: “copyright“






2.3命名規則注意幾點


儘量考慮爲元素命名其本身的作用或”用意”,達到語義化。不要使用表面形式的命名.
如:red/left/big等。


組合命名規則:
[元素類型]-[元素作用/內容]


如:搜索按鈕: btn-search、登錄表單:form-login、新聞列表:list-news。


涉及到交互行爲的元素命名:
凡涉及交互行爲的元素通常會有正常、懸停、點擊和已瀏覽等不同樣式,命名可參考以下規則:


鼠標懸停::hover   點擊:click   已瀏覽:visited


如:搜索按鈕: btn-search、btn-search-hover、btn-search-visited






2.4常用命名彙總


名稱  命名規範
頁頭  header、top
登錄條 loginbar
標誌  logo
側欄  sidebar
廣告條 banner
導航: nav
子導航:    subNav
菜單: menu
子菜單:    subMenu
下拉菜單:   dropMenu
工具條:    toolbar
表單: form
欄目: column
箭頭: arrow
搜索: search
搜索按鈕:   btn-search
滾動條:    scroll
內容: content
標籤頁:    tab
文章列表:   list
小技巧:    tips
欄目標題:   title
鏈接: links
頁腳: footer、end
服務: service
熱點: hot
新聞: news
下載: download
註冊: Register 、reg
狀態: status
按鈕: btn
上傳: upload
登陸: login
投票: vote
合作伙伴:   partner
版權: copyright
網站地圖:   sitemap




Web UI圖片命名規範:
圖片名稱分爲頭尾兩兩部分,用下劃線隔開。
頭部分表示此圖片的大類性質。
例如: 放置在頁面頂部的廣告、裝飾圖案等長方形的圖片我們取名:banner ;標誌性的圖片我們取名爲:logo ;在頁面上位置不固定並且帶有鏈接的小圖片我們取名爲button ;在頁面上做欄目鏈接的圖片我們取名:menu ;不帶鏈接表示標題的圖片我們取名:title ;裝飾用的照片我們取名:pic ;依照此原則類推。


尾部分用來表示圖片的具體含義,用英文字母表示。例如:gif  logo_lntu.gif  button_next.gif  menu_aboutus.gif  title_news.gif  pic_people.jpg
有onmouse效果的圖片,兩張分別在原有文件名後加”_on”和”_off”命名。
多語言的圖片應放到多語言目錄下




Web基本框架佈局規範:
Web基本框架佈局規範 常用到的Div和Table 兩種


採用CSS+DIV對網站重構日趨被大家重視起來,有以下優勢:


1:表現和內容相分離 


將設計部分剝離出來放在一個獨立樣式文件中,HTML文件中只存放文本信息。


2:提高搜索引擎對網頁的索引效率 


用只包含結構化內容的HTML代替嵌套的標籤,搜索引擎將更有效地搜索到你的網頁內容,並可能給你一個較高的評價。


3:提高頁面瀏覽速度 


對於同一個頁面視覺效果,採用CSS+DIV重構的頁面容量要比TABLE編碼的頁面文件容量小得多,前者一般只有後者的1/2大小。


還有因爲<span class="hljs-tag">&lt;<span class="hljs-title">table</span>&gt;</span>標籤是要等<span class="hljs-tag">&lt;/<span class="hljs-title">table</span>&gt;</span>下載好以後纔可以顯示的,所以整個網頁是一下子跳出來的,這樣讓人感覺起來顯示速度非常的慢。而使用css+div,<span class="hljs-tag">&lt;<span class="hljs-title">div</span>&gt;</span> 標籤不用等<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span>下載好就可以顯示裏面的內容的,所以讓人感覺打開網頁的速度非常之快。


4:易於維護和改版 


你只要簡單的修改幾個CSS文件就可以重新設計整個網站的頁面。


從以上的描述來看,採用CSS+DIV對網站重構可以大大提升網站用戶與搜索引擎的友好度。


CSS+DIV所以成爲目前網頁佈局主流。






Table最大缺點是代碼臃腫,你至少需要寫下 <span class="hljs-tag">&lt;<span class="hljs-title">table</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-title">tr</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>這三個標籤之後,才能開始真正的內容,另外,Table 的各種標籤中還包含了複雜的屬性定義,而 Div 只需 <span class="hljs-tag">&lt;<span class="hljs-title">div</span>&gt;</span>一個標籤。


頁面渲染性能問題:瀏覽器需要將整個表格完全讀完後纔會開始渲染。


不利於搜索引擎優化:搜索引擎喜歡內容與修飾分開。


可訪問性差:屏幕朗讀軟件和盲文瀏覽器無法很好地理解 Table 中的內容。


不夠語義(Semantic):我們需要語義的 Web。


一般table 只用做於數據處理。






CSS樣式書寫規範及優化:
5.1.CSS文件命名規範


全局樣式:global.css;


框架佈局:layout.css;


字體樣式:font.css;


鏈接樣式:link.css;


打印樣式:print.css;






5.2.常用類/ID命名規範


頁 眉:header


內 容:content


容 器:container


頁 腳:footer


注 釋:note


……(更多參照2.4常用命名彙總)


1、常用類的命名規則:


應儘量以常見英文單詞爲準,做到通俗易懂,並在適當的地方加以註釋。對於二級類/ID命名,則採用組合書寫的模式,後一個單詞的首字母應大寫:諸如“搜索框”則應命名爲“searchInput”、“搜索圖標”命名這“searchIcon”、“搜索按鈕”命名爲“searchBtn”……


2、輔助圖片用背影圖處理:


這裏的”輔助圖片”是指那些不是作爲頁面要表達的內容的一部分,而僅僅用於修飾、間隔、提醒的圖片。將其做背影圖處理,可以在不改動頁面的情況下通過CSS樣式來進行改動,如:#logo {background:url(images/logo.jpg) #FEFEFE no-repeat right bottom;}






5.3結構與樣式分離:


在頁面裏只寫入文檔的結構,而將樣式寫於css文件中,通過外部調用CSS樣式表來實現結構與樣式的分離。






5.4、文檔的結構化書寫:


頁面CSS文檔都應採用結構化的書寫方式,邏輯清晰易於閱讀。如:


<span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">”mainMenu”</span>&gt;</span>


<span class="hljs-tag">&lt;<span class="hljs-title">ul</span>&gt;</span>


<span class="hljs-tag">&lt;<span class="hljs-title">li</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">”#”</span> &gt;</span>首頁<span class="hljs-tag">&lt;/<span class="hljs-title">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-title">li</span>&gt;</span>


<span class="hljs-tag">&lt;<span class="hljs-title">li</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">”#”</span> &gt;</span>介紹<span class="hljs-tag">&lt;/<span class="hljs-title">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-title">li</span>&gt;</span>


<span class="hljs-tag">&lt;<span class="hljs-title">li</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">”#”</span> &gt;</span>服務<span class="hljs-tag">&lt;/<span class="hljs-title">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-title">li</span>&gt;</span>


<span class="hljs-tag">&lt;/<span class="hljs-title">ul</span>&gt;</span>


<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span>






/*=====主導航=====*/


#mainMenu {


width:100%;


height:30px;


background:url(images/mainMenu_bg.jpg) repeat-x;


}


#mainMenu ul li {


float:left;


line-height:30px;


margin-right:1px;


cursor:pointer;


}


/*=====主導航結束=====*/






5.5註釋書寫規範


1、行間註釋:


直接寫於屬性值後面,如:


.search{


border:1px solid #fff;/*定義搜索輸入框邊框*/


background:url(../images/icon.gif) no-report #333;/*定義搜索框的背景*/


}


2、整段註釋:


分別在開始及結束地方加入註釋,如:


/*=====搜索條=====*/


.search {


border:1px solid #fff;


background:url(../images/icon.gif) no-repeat #333;


}


/*=====搜索條結束=====*/






5.6 CSS樣式屬性代碼優化縮寫


1、不同類有相同屬性及屬性值的縮寫:


對於兩個不同的類,但是其中有部分相同甚至是全部相同的屬性及屬性值時,應對其加以合併縮寫,特別是當有多個不同的類而有相同的屬性及屬性值時,合併縮寫可以減少代碼量並易於控制。如:


#mainMenu {


background:url(../images/bg.gif);


border:1px solid #333;


width:100%;


height:30px;


overflow:hidden;


}


#subMenu {


background:url(../images/bg.gif);


border:1px solid #333;


width:100%;


height:20px;


overflow:hidden;


}






兩個不同類的屬性值有重複之處,剛可以縮寫爲:


#mainMenu,#subMenu {


background:url(../images/bg.gif);


border:1px solid #333;


width:100%;


overflow:hidden;


}


#mainMenu {height:30px;}


#subMenu {height:20px;}






2、同一屬性的縮寫:


同一屬性根據它的屬性值也可以進行簡寫,如:


.search {


background-color:#333;


background-image:url(../images/icon.gif);


background-repeat: no-repeat;


background-position:50% 50%;


}


.search {
background:#333 url(../images/icon.gif) no-repeat 50% 50%;
}

3、內外側邊框的縮寫:

在CSS中關於內外側邊框的距離是按照上、右、下、左的順序來排列的,當這四個屬性值不同時也可直接縮寫,如:

.btn {
margin-top:10px;
margin-right:8px;
margin-bottom:12px;
margin-left:5px;
padding-top:10px;
padding-right:8px;
padding-bottom:12px;
padding-left:8px;
}
則可縮寫爲:
.btn {
Margin:10px 8px 12px 5px;
Padding:10px 8px 12px 5px;
}
而如果當上邊與下邊、左邊與右邊的邊框屬性值相同時,則屬性值可以直接縮寫爲兩個,如:
.btn {


margin-top:10px;
margin-right:5px;
margin-bottom:10px;
margin-left:5px;
}
縮寫爲:.btn {margin:10px 5px;}
而當上下左右四個邊框的屬性值都相同時,則可以直接縮寫成一個,如:
.btn {
margin-top:10px;
margin-right:10px;
margin-bottom:10px;
margin-left:10px;
}


縮寫爲:.btn{margin:10px;}

4、顏色值的縮寫:
當RGB三個顏色值數值相同時,可縮寫顏色值代碼。如:
.menu { color:#ff3333;}
可縮寫爲:.menu {color:#f33;}

5.7 CSS各瀏覽器解決不兼容問題


因爲不同瀏覽器對W3C標準的支持不一樣,各個瀏覽器對於頁面的解釋呈視也不盡相同,比如IE在很多情況下就與FF存在3px的差距,對於這些差異性,就需要利用css 的hack來進行調整,當然在沒有必要的情況下,最好不要寫hack來進行調整,避免因爲hack而導致頁面出現問題。


1、 IE6、IE7、Firefox之間的兼容寫法:


寫法一:


IE都能識別*;標準瀏覽器(如FF)不能識別*;


IE6能識別*,但不能識別 !important,


IE7能識別*,也能識別!important;


FF不能識別*,但能識別!important;


根據上述表達,同一類/ID下的CSS  hack可寫爲:


.searchInput {


background-color:#333;/*三者皆可*/


*background-color:#666 !important; /*僅IE7*/


*background-color:#999; /*僅IE6及IE6以下*/


}


一般三者的書寫順序爲:FF、IE7、IE6.


寫法二:


IE6可識別“_”,而IE7及FF皆不能識別,所以當只針對IE6與IE7及FF之間的區別時,可這樣書寫:


.searchInput {


background-color:#333;/*通用*/


_background-color:#666;/*僅IE6可識別*/


}






寫法三:


*+html 與 *html 是IE特有的標籤, Firefox 暫不支持。


.searchInput {background-color:#333;}


*html .searchInput {background-color:#666;}/*僅IE6*/


*+html .searchInput {background-color:#555;}/*僅IE7*/


屏蔽IE瀏覽器:


select是選擇符,根據情況更換。第二句是MAC上safari瀏覽器獨有的。


*:lang(zh) select {font:12px  !important;} /*FF的專用*/


select:empty {font:12px  !important;} /*safari可見*/


IE6可識別:


這裏主要是通過CSS註釋分開一個屬性與值,註釋在冒號前。


select { display /*IE6不識別*/:none;}


IE的if條件hack寫法:


所有的IE可識別:


<span class="hljs-tag">&lt;<span class="hljs-title">!–[if</span> <span class="hljs-attribute">IE</span>]&gt;</span> Only IE <span class="hljs-tag">&lt;<span class="hljs-title">![end</span> <span class="hljs-attribute">if</span>]–&gt;</span>


只有IE5.0可以識別:


<span class="hljs-tag">&lt;<span class="hljs-title">!–[if</span> <span class="hljs-attribute">IE</span> <span class="hljs-attribute">5.0</span>]&gt;</span> Only IE 5.0 <span class="hljs-tag">&lt;<span class="hljs-title">![end</span> <span class="hljs-attribute">if</span>]–&gt;</span>


IE5.0包換IE5.5都可以識別:


<span class="hljs-tag">&lt;<span class="hljs-title">!–[if</span> <span class="hljs-attribute">gt</span> <span class="hljs-attribute">IE</span> <span class="hljs-attribute">5.0</span>]&gt;</span> Only IE 5.0+ <span class="hljs-tag">&lt;<span class="hljs-title">![end</span> <span class="hljs-attribute">if</span>]–&gt;</span>


僅IE6可識別:


<span class="hljs-tag">&lt;<span class="hljs-title">!–[if</span> <span class="hljs-attribute">lt</span> <span class="hljs-attribute">IE</span> <span class="hljs-attribute">6</span>]&gt;</span> Only IE 6- <span class="hljs-tag">&lt;<span class="hljs-title">![end</span> <span class="hljs-attribute">if</span>]–&gt;</span>


IE6以及IE6以下的IE5.x都可識別:


<span class="hljs-tag">&lt;<span class="hljs-title">!–[if</span> <span class="hljs-attribute">gte</span> <span class="hljs-attribute">IE</span> <span class="hljs-attribute">6</span>]&gt;</span> Only IE 6/+ <span class="hljs-tag">&lt;<span class="hljs-title">![end</span> <span class="hljs-attribute">if</span>]–&gt;</span>


僅IE7可識別:


<span class="hljs-tag">&lt;<span class="hljs-title">!–[if</span> <span class="hljs-attribute">lte</span> <span class="hljs-attribute">IE</span> <span class="hljs-attribute">7</span>]&gt;</span> Only IE 7/- <span class="hljs-tag">&lt;<span class="hljs-title">![end</span> <span class="hljs-attribute">if</span>]–&gt;</span>






2、清除浮動:


在Firefox中,當子級都爲浮動時,那麼父級的高度就無法完全的包住整個子級,那麼這時用這個清除浮動的HACK來對父級做一次定義,那麼就可以解決這個問題。


select:after {


content:”.”;


display:block;


height:0;


clear:both;


visibility:hidden;


}






其他規範:
js的命名原則以功能的英語單詞爲名。例如:廣告條的js文件名爲:js.
所有的CSS的儘量採用外部調用.
所有的javascript腳本儘量採取外部調用.
Web 頁面編碼一律統一用UTF-8編碼:UTF-8是世界性通用代碼,也完美的支持中文編碼,如果我們做的網站能讓國外用戶正常的訪問,就最好用UTF-8。
字體符號用像素px來定義,px使用中文宋體12px 和14px黑體
字體採用:Arial, Helvetica, sans-serif,宋體。


所有連接使用相對路徑/images/,切記不可使用絕對路徑。如:../images/
所有文件,目錄,圖片全部以小寫字母命名,禁止用中文命名。
清理無效的鏈接和圖片</code>
發佈了18 篇原創文章 · 獲贊 39 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章