一些新手容易忽略或者出現錯漏的地方。
1.首先是對於布局標簽的定義。
有時候寫好了CSS,但是反復調試總發現效果差強人意,有那麼一塊空白,揮之不去。其實這就是對於標簽定義的不嚴謹造成的。因為在xHtml的部分標簽裡,有一些的默認屬性值不一定是為空或零的。例如form,p,他們的margin默認值並不是0,所以在定義時定要多加注意。我們可以這樣寫來更加嚴謹的定義:* { margin:0;padding:0 } /*注釋:定義所有的標簽的margin和padding為0*/
2.縮寫和大小寫問題
css對於class和id是區分大小寫的,所以當樣式不生效的時候建議先檢查一下大小寫問題。我建議所有名稱統一小寫,當然你有自己的編碼風格也可以用。例如第二單詞大寫,oneTwo在CSS裡有很多縮寫的習慣,推薦使用縮寫格式。基本的縮寫有 屬性縮寫和顏色縮寫等。
屬性縮寫的例子:
margin-top:1px;margin-left:1px;margin-right:1px;margin-bottom:1px;
可以簡單的寫成 marign:1px;代表了以上四個屬性。節約了很多字節。
順便提一下,margin的縮寫比較特殊,給不會的朋友看看。
margin x;代表四個方向都為x
margin x y;代表上下為x,左右為y;
margin x y z a;x代表上,y代表右,z代表下,a代表左
其他的這種表示上下左右的屬性同marign.
另一種縮寫就是顏色縮寫:比如 #aabbcc;可以簡寫為 #abc;
3.少用限定,多用繼承
(1).少用限定:比如定義了一個類a,該類被用於一個id為b的div中,有人為了嚴謹,這樣定義:#b.a {}
這樣定義就違備了class的初衷-靈活性.所以一般定義class盡量不要限定他們的應用范圍,除非有特殊需要。
子選擇是一種不錯的方法,比如一個li,我們可以不必為其定義id或class,一樣可以設置它的屬性。
例子:
<div id="header">
<ul><li></li></ul>
</div>
這種情況我們也可以這樣寫: #header ul li { 這裡就是li的屬性 }
(2).多用繼承:
有人剛開始寫CSS寫的很死,例如這樣寫:
#a { font-size:12px;font-weight:bold;color:#abc; }
#b { font-size:12px;font-weight:bold;color:#123; }
其實在兩個樣式有許多雷同的時候,我們完全可發揮CSS的繼承特性,例如把上面的例子改成這樣:
#a,#b { font-size:12px;font-weight:bold;color:#abc; }
#b { color:#123; }
一組標簽也同樣適用此方法:h1,h2,h3 {....}
效果是完全一樣的,是不是又節約了很多字節呢..
4.多重class及就近優先原則
如果一個標簽相同時應用兩個class,不要這樣寫:<div class="a" class="b">這樣是不對的
正確寫法:<div class="a b">
如果同時定了兩個p margin屬性,後面的將覆蓋前面的。還有定義了一個span的color屬性,又定義了一個class,名為a的color屬性,當<span class="a">時候,a的屬性就會覆蓋原span的屬性。這就是就近優先原則。。。。
5.鏈接的正確寫法:
順序是很重要的,一定要正確::link :visited :hover :active
否則有可能會出現錯誤。
學好CSS最需要的就是多動多實踐,那樣才能學的快。