制定本規範的目的在於使咱們的CSS代碼更加易於維護和重用,從而提高效率執行本規範時建議的流程
建議使用D(esign)C(oding)D(ebug)V(alidate)R(oundup),即DCDVR的流程。首先須要規劃樣式並分爲共有樣式和頁面個性化樣式,而後纔開始編碼,編碼的同時進行Debug,Validate和代碼片段的總結,而不是在全部模板都完成後才進行這三個步驟。 css
/** * @name: 組件名 * @overview: 組件介紹 * @require: 依賴的樣式 * @author: 小魚(sofish@163.com) */
.all-IE{property:value\9;} .gte-IE-8{property:value\0;} .lte-IE-7{*property:value;} .IE-7{+property:value;} .IE-6{_property:value;} .not-IE{property//:value;} @-moz-document url-prefix() { .firefox{property:value;} } @media all and (-webkit-min-device-pixel-ratio:0) { .webkit{property:value;} } @media all and (-webkit-min-device-pixel-ratio:10000),not all and (-webkit-min-device-pixel-ratio:0) { .opera{property:value;} } @media screen and (max-device-width: 480px) { .iphone-or-mobile-s-webkit{property:value;} }
.selector .child{property:value;} /* for ie-6 */ .selector > .child{property:value;} /* except ie-6 */
1.以下寫法爲例: html
/* 區域模塊-1 */ .tech, .ued{ background:#f60 url(xxx/orange.png) no-repeat 0 0; } /* 區域模塊-2 */ .tech{ width:950px; margin:0 auto; } .tech .wd{ width:620px; float:left; }
/* 區域模塊-3 */ .ued{width:100%;padding:30px 50px;} .ued .visual{display:inline-block;font:700 normal 12px/1.5 arail;}
2.須要很是注意的點 web
font-weight:600; font-style:normal; font-size:12px; line-height:1.5; font-family:arial;
一般須要使用縮寫規則的: express
padding: top right bottom left; <--> padding: top-bottom right+left; <--> padding: top left-right bottom; <--> padding: top-right-bottom-left; 如:padding:1px 2px 3px 4px; margin: 同上 color: red; color;#FFF; color:#ABCABC (顏色名>16進制寫法;顏色名採用小寫,16進制使用大寫;寫3位,仍是6位,自便) background: color imageUrl repeat attachment position; 如:background:#ddd url(wd.png) no-repeat scroll 10px 20px; border: size style color; 如: border:1px solid #ddd; font: weight variant style size/lineHeight family; 如 font:700 small-caps italic 12px/1.5 "Courier New"; font-weight 統一用 500 代替 normal, 用 700 代替 bold; list-style: type position image; 如:list-style: square inside url(wd.png); 不過,一般咱們要使用的是 list-style:none;
-moz-box-shadow: 1px 2px 3px #ddd; -webkit-box-shadow: 1px 2px 3px #ddd; box-shadow: 1px 2px 3px #ddd;
.selector{float:left;width:300px;height:200px;font-size:14px;color:#f36;}
2.有因纔有果。
好比想使用」圖片替換文字「技術,一般要使用的text-indent。若是咱們使用標籤的是 span:<span>這個文字將被圖片替換</span>,那麼正確寫法: 後端
.thepic{display:block;text-indent:-9999em;}
咱們應該是先將 span 變成」塊級元素「,再將文字 indent。而不是先 indent 再變成塊級的。
又如咱們,若是想讓一個 span 使用 margin, 那麼咱們應該這樣寫: 瀏覽器
span{display:block;margin-bottom:10px;}
而非margin-bottom先行,由於沒有 display 以前,行內元素是沒有 margin 的。 服務器
記住一句話:不管何時,都不要使用它。用 Javascript 吧。更優雅,更靈活。 框架
應該儘可能避免使用 AlphaImageLoader,能夠適當在投影/發光/漸變/去色方面上使用。 iphone
/* global reset */ body{padding:0;margin:0;font.....} a{color:#07f;} a:hover{color:#555;}
須要注意的是,通常狀況下,不要直接給標籤寫樣式。而應該使用 class。像下面這種寫法,並不合適: ide
h1{font-size:30px} h2{font-size:20px} h3{font-size:10px;}
若是有另一個 h2 也要使用 10px 的,而其餘的都仍使用 20px 的,那可就很差辦了。因此,推薦用這種方法:
/* global classes */ .text-size30{font-size:30px;} .text-size20{font-size:20px;} .text-size10{font-size:10px;} ... <h2 class="text-size20">... <h2 class="text-size10">...
有兩點須要注意的,一是,注意代碼重用的模塊化;另外一是,注意 HTML 結構的模塊化,而不是分塊。
<div class="margin-test"> <div class="margin-2">i am 2.</div> </div> <div id="module-1" class="module"> <h3>TITLE</h3> <p class="module-item"> some text </p> </div> <div id="module-2" class="module"> < h3>TITLE</h3> <p class="module-item"> some text </p> </div> /* module, reuse style in module scrope*/ .module{} .module-status{} .module-item{} .module-status .module-1-item{} /* customize */ #module-1 .module-item{} #module-2 .module-item{}
<div id="module-1" class="module"> <h3>TITLE</h3> <p class="module-item"> some text </p> </div> <!-- #module .module -->
而不是這樣寫:
<h3>TITLE</h3> <!-- 第一塊 --> <div id="module-1" class="module"> <p class="module-item"> some text </p> </div> <!-- 第二塊 -->
1.Background Color
display: inline-block height: (除 auto 外任何值) width: (除 auto 外任何值) float: (left 或 right) position: absolute writing-mode: tb-rl zoom: (除 normal 外任意值)