基本原則:
CSS樣式可細分爲3類:自定義樣式、從新定義HTML樣式、連接狀態樣式。css
- 樣式爲設計師自定義的新 CSS 樣式,影響被使用本樣式的區域,用於完成網頁中局部的樣式設定。
- 樣式名 「.」+「相應樣式效果描述的單詞或縮寫」例:「 .shadow 」;
- 文字樣式樣式名「.no」+「字號」+「行距」+「顏色縮寫」例:「 .no12 」 、「 .no12-24 」。
- 義HTML樣式爲設計師從新定義已有的HTML標籤樣式,影響所有的被設定標籤樣式,用於統一網頁中某一標籤的樣式定義。樣式名「HTML標籤」例:hr { border: 1px dotted #333333 }
- 態樣式爲設計師對連接不一樣狀態設定特殊樣式,影響被使用本樣式區域中的連接。
- 該樣式寫法有2種: a.nav:link nav.a:link 第一種只能修飾<a>標籤中;第二種能夠修飾全部包含有<a>標籤的其餘標籤。
- 頁面內的樣式加載必須用連接方式<link rel="stylesheet" type="text/css" href="style/style.css">。
注意細則:
- 協做開發及分工: i會根據各個模塊, 同時根據頁面類似程序, 事先寫好大致框架文件, 分配給前端人員實現內部結構&表現&行爲; 共用css文件base.css由i書寫, 協做開發過程當中, 每一個頁面請務必都要引入, 此文件包含reset及頭部底部樣式, 此文件不可隨意修改;
- class與id的使用: id是惟一的並是父級的, class是能夠重複的並是子級的, 因此id僅使用在大的模塊上, class可用在重複使用率高及子級中; id原則上都是由我分發框架文件時命名的, 爲JavaScript預留鉤子的除外;
- 爲JavaScript預留鉤子的命名, 請以 js_ 起始, 好比: js_hide, js_show;
- class與id命名: 大的框架命名好比header/footer/wrapper/left/right之類的在2中由i統一命名.其餘樣式名稱由 小寫英文 & 數字 & _ 來組合命名, 如i_comment, fontred, width200; 避免使用中文拼音, 儘可能使用簡易的單詞組合; 總之, 命名要語義化, 簡明化.
- 規避class與id命名(此條重要, 如有不明白請及時與i溝通):
- a:經過從屬寫法規避, 示例見d;
- b:取父級元素id/class命名部分命名, 示例見d;
- c:重複使用率高的命名, 請以本身代號加下劃線起始, 好比i_clear;
- d:a、b兩條, 適用於在2中已建好框架的頁面, 如, 要在2中已建好框架的頁面代碼<div id="mainnav"></div>中加入新的div元素。
- 按a命名法則: <div id="mainnav"><div class="firstnav">...</div></div>; 樣式寫法: #mainnav .firstnav{.......}。
- 按b命名法則: <div id="mainnav"><div class="main_firstnav">...</div></div>; 樣式寫法: .main_firstnav{.......}。
- css屬性書寫順序, 建議遵循 佈局定位屬性-->自身屬性-->文本屬性-->其餘屬性. 此條可根據自身習慣書寫, 但儘可能保證同類屬性寫在一塊兒. 屬性列舉: 佈局定位屬性主要包括: margin、padding、float(包括clear)、position(相應的 top,right,bottom,left)、display、visibility、overflow等;自身屬性主要包括: width & height & background & border; 文本屬性主要包括:font、color、text-align、text-decoration、text-indent等;其餘屬性包括: list-style(列表樣式)、vertical-vlign、cursor、z-index(層疊順序) 、zoom等.我所列出的這些屬性只是最經常使用到的, 並不表明所有;
- 書寫代碼前, 考慮並提升樣式重複使用率;
- 充分利用html自身屬性及樣式繼承原理減小代碼量, 好比: <ul class="list"><li>這兒是標題列表<span>2010-09-15</span></ul> 定義ul.list li{position:relative} ul.list li span{position:absolute; right:0}便可實現日期居右顯示
- 樣式表中中文字體名, 請務必轉碼成unicode碼, 以免編碼錯誤時亂碼;
- 背景圖片請儘量使用sprite技術, 減少http請求, 考慮到多人協做開發, sprite按模塊製做;
- 使用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文件中我會初始化表格樣式)
- 杜絕使用<meta http-equiv="X-UA-Compatible" content="IE=7" /> 兼容ie8;
- 用png圖片作圖片時, 要求圖片格式爲png-8格式,若png-8實在影響圖片質量或其中有半透明效果, 請爲ie6單獨定義背景: background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=crop, src=’img/bg.png’);
- 避免兼容性屬性的使用, 好比text-shadow || css3的相關屬性;
- 減小使用影響性能的屬性, 好比position:absolute || float ;
- 必須爲大區塊樣式添加註釋, 小區塊適量註釋;
- 代碼縮進與格式: 建議單行書寫, 可根據自身習慣, 後期優化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 合做夥伴:partnerhtml
(二)註釋的寫法:
/* 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\css3
基本樣式:
/* 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 兩種字體。瀏覽器
什麼是CSSapp
因爲不一樣的瀏覽器,甚至同一瀏覽器的不一樣版本對CSS的解析認識不同,致使生成的頁面效果不一致,寫出針對不一樣瀏覽器CSS code就稱爲CSS hack。框架
經常使用的CSS hack有三種方式,CSS內部hack,選擇器hack、HTML頭部,其中第一種最經常使用。ide
有關這三種方式請參考:http://www.cnblogs.com/dolphinX/p/3292630.html佈局
CSS Hack的順序性能
使用 Firefox 做爲平臺, 只要代碼寫得夠標準, 其實要 Hack 的地方不會不少的, IE 之外的瀏覽器幾乎都不會有問題, 因此能夠暫時忽略,順序以下:Firefox -> IE6 -> IE7 -> 其餘