1、ID和類 我們首先簡單的說明一下什么是ID和類。ID是一個標識碼,因此在一個HTML頁面中,ID只能出現(xiàn)一次;而類相當于一種類別,屬于一種類的可以是一個也可以是多個,因此類可以在頁面中無限次地使用。知道了兩者的區(qū)別,我們就使用事例來說明。
<!--應用ID-->
<!--HTML頁面-->
<p id="highlight">This paragraph has red text.</p>
<p id="default">This paragraph has dark gray text.</p>
/*css頁面*/
/*Define highlighted text*/
#highlight{color:#F00;}
/*Define default text*/
#default{color:#333;}
/*Adjust the color of p when used as a title*/
p#title{color:#F00;}
上面的事例第一段文字是紅色的,第二段將是灰色的,就因為他們的id不同,因此引用了不同選擇器?荚嚢商崾緋#title{color:#F00;}只有在p這個選擇器下?lián)碛衪itle這個id的文字將是紅色的,其他的選擇器將不會使用這個樣式。
使用ID的場合:ID應該為每個頁面唯一存在并僅使用一次的元素保留,如頁眉、邊欄、主導航欄或者頁腳等。
<!--應用類-->
<!--HTML頁面-->
<p class="highlight">This paragraph has red text.</p>
<p class="default">This paragraph has dark gray text.</p>
<p class="default">This paragraph also has dark gray text.</p>
/*css頁面*/
/*Define highlighted text*/
.highlight{color:#F00;}
/*Define default text*/
.default{color:#333;}
這次的顯示和前面是一樣的,ID通過‘#‘來定義,而類通過‘.‘來定義;很簡單吧,當你可以熟練的使用上面這些內(nèi)容就可以基本的完成html上一半的任務了,當然需要靈活應用拉。
使用類的場合:類很靈活的使用在各個場所,在頁面中只會出現(xiàn)一次的如頁眉、邊欄、主導航欄或者頁腳最好不要使用類;另外千萬注意:類主要用來定義正常樣式的例外情況,而不是用來定義標準樣式的。
2、使用層疊
css(層疊樣式表),里面的層疊是什么意思呢?命名上存在的東西應該很重要把,我想使用通俗的方式來解釋可能更加容易理解。層疊就是當我對同一個選擇器多次定義了它的樣式,應該以怎么樣的規(guī)則來確定最后選擇器的樣式。
比如我在外部樣式內(nèi)定義了p的文本都是紅色的,我又在其中一個頁面的頭部定義p是黑色的,這個頁面里面兩個p,一個加上了灰色,一個我們沒有進行定義。那我們選擇哪個顏色應用在兩個p上面呢?加上灰色的p應該是灰色沒有問題。另外一個沒有定義樣式的是紅色還是黑色?這個就是層疊的原則,你學會了層疊的原則就會知道沒有定義樣式的p是黑色的。那下面我們就來學習層疊的一些原則把。
利用不同的應用方法實現(xiàn)層疊:
瀏覽器首先執(zhí)行內(nèi)聯(lián)規(guī)則,然后執(zhí)行所有在<head>中的其他內(nèi)嵌規(guī)則,最后再查找外部文件來完全理解你所創(chuàng)建的css。
通過多個外部樣式表層疊:
當一個頁面中引用了多個外部樣式表,則瀏覽器認為最后一個樣式表最重要。也就是說如果幾個外部樣式同時定義了同一選擇器的不同屬性,則以最后面那個樣式表為準。
通過導入樣式表實施層疊:
導入樣式表的層次性也和外部樣式相同,最后導入的最重要。
總結上面幾點:我們只需要牢記,越晚給定的規(guī)則越重要這條原則基本就夠用了。
層次的最底層:
處于層疊層次最底層的樣式是瀏覽器自己的默認樣式表。如果你沒有定義的樣式最終就會以默認的樣式來表現(xiàn),如果你定義了樣式,那就會覆蓋掉(層疊)默認樣式。
建議:你需要時刻小心使用層疊?缍鄠樣式表跟蹤層疊通常是一件非常困難的事情,你增加的樣式,往往會在你不知情的情況下把別的頁面的正確樣式覆蓋掉導致錯誤,而且無法測試,只能通過眼睛看才知道。(希望那位高人可以做一些軟件提供提示功能就好了,懶人妄想中)
3、分組 /*Heading styles */
h1,h2,h3{
font-family:Helvetica,Arial,sans-serif;
line-height:140%;
color:#333;
}
/*Additionally,render all h1 headings in italics */
h1{font-style:italic;}
上面這段樣式通過h1,h2,h3對這三個選擇器進行了分組,使他們一樣的樣式集合在了一起,而需要額外增加h1的樣式在后面加上就可以了。這樣做的好處就是縮小了定義樣式文件的容量。
4、繼承 這里的繼承不同于面向?qū)ο蟮睦^承原理。還是距離說明把:
<p style="color:#F00">This <span>paragraph</span> has red text.</p>
如果樣式中沒有對span進行定義的話,整句話還是顯示紅色!這就是繼承,span繼承了p的樣式。
建議:在一個結構良好的HTML文件中,body是所有可視結點的父元素,因此每個元素都可以從它繼承相關信息。繼承的強大也需要時刻的小心,你必須清楚地知道哪些地方需要使用繼承,哪些地方不需要,不要被繼承搞得糊里糊涂。