展開全部 首先我們需要清楚,瀏覽器是如何讀取選擇器,以識別樣式,并將相應(yīng)的樣式附于對應(yīng)的HTML元素,達(dá)到美化頁面的效果。Chris Coyier曾在《Efficiently Rendering CSS》一文中說過“瀏覽器讀取你的選擇器,遵循的原則是從選擇器的右邊到左邊讀取。換句話說,瀏覽器讀取選擇器的順序是由右到左進(jìn)行”。比如說: div.nav ul li a 上面的實(shí)例來說,瀏覽器首先會嘗試在你的HTML標(biāo)簽中尋找“a”元素,接著在匹配“l(fā)i和ul”,最后在去匹配“div.nav”。這就是前成所主的“選擇器從右到左的原則”。 選擇器的最后一部分,也就是選擇器的最右邊(在這個(gè)例子中就是a[title]部分)部分被稱為“關(guān)鍵選擇器”,它將決定你的選擇器的效率如何?是高還是低。 老版本的瀏覽器可以過濾掉不匹配的選擇器,而直接匹配更高效的選擇器。記得David Hyatt在《Writing efficient CSS for use in the Mozilla UI》說過:“這個(gè)關(guān)鍵選擇器可以大大提高選擇器的性能,少檢查一個(gè)給定的元素規(guī)則,就可以更有效的將樣式匹配給對應(yīng)的HTML元素。”那么如何讓關(guān)鍵選擇器更有效,性能化更高呢?其實(shí)很簡單,主要把握一點(diǎn)“越具體的關(guān)鍵選擇器,其性能越高” 那么什么樣類型的選擇器,其性能高?什么樣的類型的選擇器性能低呢?下面我們就針對兩個(gè)問題來展開具體的學(xué)習(xí)。 CSS選擇器的效率 如果你閱讀了本站的有關(guān)于選擇器類型的介紹的話,你對選擇器并不會感到陌生。就算你沒讀過,我想CSS選擇器不會讓我們覺得是新東西,比如我們常用的基本選擇器“元素標(biāo)簽選擇器div”、“id選擇器#header”、“類選擇器.class”,或者說我們很少見的偽類選擇器“:focus”以及更復(fù)雜的css3選擇器“:nth-child”等等。 選擇器有一個(gè)固有的效率,我們來看Steve Souders給排的一個(gè)順序: id選擇器(#myid)類選擇器(.myclassname)標(biāo)簽選擇器(div,h1,p)相鄰選擇器(h1+p)子選擇器(ul li)后代選擇器(li a)通配符選擇器(*)屬性選擇器(a[rel="external"])偽類選擇器(a:hover,li:nth-child) 上面九種選擇器的效率是從高到低排下來的,基中ID選擇器的效率是最高,而偽類選擇器的效率則是最底。詳細(xì)的介紹大家還可以點(diǎn)擊Writing efficient CSS selectors。 綜合上面的順序,我們清楚的知道,id和類名用于關(guān)鍵選擇器上效率是最高的,而CSS3的仿偽類和屬性選擇器,雖然使用方便,但其效率卻是最低的。我們下面一起來看幾個(gè)實(shí)例的對比: div #myid 效率要比下面的高: #myid div 第一種選擇器比第二種選擇器效率高,大家或許會問為什么?其實(shí)根據(jù)前面所介紹的我們就不難理解了,因?yàn)榈谝粋€(gè)選擇器的“關(guān)鍵選擇器”使用了 “ID選擇器”,而第二個(gè)選擇器的“關(guān)鍵選擇器”使用的是“標(biāo)簽選擇器”,對比下來,“ID選擇器”效率高過“標(biāo)簽選擇器”,所以說第一個(gè)選擇器的效率要高于第二個(gè)選擇器。 在類名或ID名前面加上標(biāo)簽也會致使選擇器效率變低的,比如說: div #myid 上面兩個(gè)選擇的效率要高于下面的選擇器: p#mydiv p.myclassname 來自Mozilla的幾點(diǎn)建議 David在《Use efficient CSS selectors》中介紹了幾種書寫高效率的CSS選擇器的方法,下面我將他們移到這里來讓大家參考: 寫道 1 避免普遍規(guī)則 2 不要在ID選擇器前加標(biāo)簽名或類名 3 不要在類名選擇器前加標(biāo)簽名 4 盡可能使用具體的類別 5 避免使用后代選擇器 6 標(biāo)簽分類規(guī)則中不應(yīng)該包含一個(gè)子選擇器 7 子選擇器的問題 8 借助相關(guān)繼承關(guān)系 9 使用范圍內(nèi)的樣式表 如果你不夠清楚上面所講的是什么,你可以點(diǎn)擊這里,他會讓你更容易了解這些規(guī)則。 我們應(yīng)該怎么做 前面說“ID選擇器”的效率是最高的,那么今天我們寫樣式,為了提高選擇器的效率,是不是我們要在每一個(gè)文檔的HTML元素中都加入ID名呢?我想這樣的做法是沒有的。對于一個(gè)有語義的代碼編寫和如何提高性能,以前他們之間如何的平衡?其實(shí)這個(gè)選擇器的效率低一點(diǎn),對于大多數(shù)網(wǎng)站來說并不會有太大的影響,但對于一個(gè)大型的網(wǎng)站,產(chǎn)生大量的流量這就會有差別了,也就很值得我們?nèi)λM(jìn)行優(yōu)化。那么我們就很有必要的去了解他們是如何工作,比如說,一般情況下哪些選擇器的使用效率更高。來看兩個(gè)簡單的例子: #myid 上面的選擇器高于下面的: p#myid 后者的寫法我發(fā)現(xiàn)還是有很多朋友這樣寫,但我不知道你為什么需要在ID前面加一個(gè)標(biāo)簽?難道你同一個(gè)頁面會有多個(gè)相同的ID不成? 我們接下來在來看一個(gè)實(shí)例,用于列表上的,比如說我們制作導(dǎo)航菜單的: #nav a 高效于: #nav li a 上面只是介紹了兩個(gè)常碰到的實(shí)例,在這里說這兩個(gè)實(shí)例,主要目的是讓你在今后的編寫樣式時(shí),能注意這方面的的細(xì)節(jié),從而加快你的代碼效率。
成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的德保網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
CSS之入門篇——推薦新手
關(guān)于CSS樣式表
一.在學(xué)習(xí)css之前你應(yīng)該掌握哪些基礎(chǔ)知識
1.什么是網(wǎng)頁,什么是超文本語言(html)。
2.會使用Dreamweaver等常用的網(wǎng)頁編輯器。
Dreamweaver是現(xiàn)今最好的網(wǎng)站編輯工具之一,而Dreamweaver8增加的對CSS的支持更是你容易得來使用CSS,用它來給制作網(wǎng)頁的CSS樣式表會更簡單、更方便。本教程教你如何利用Dreamweaver8在頁面中加入CSS,你不用死記硬背的記代碼標(biāo)記,也不用去看很厚的CSS手冊,你就可以輕松自如的在網(wǎng)頁中運(yùn)用CSS。不過首先你要對CSS有一定的了解。因此,本教程的前面4章為CSS理論知識,主要是對CSS的全面介紹,希望讀者看后對CSS的語法、結(jié)構(gòu)、應(yīng)用有一個(gè)全面的了解;后面4章為DW實(shí)戰(zhàn),主要是教你如何利用Dreamweaver8靈活運(yùn)用CSS在網(wǎng)頁中。閱讀此文前,你需要對HTML有一定的了解,并會使用Dreamweaver。
二.認(rèn)識CSS
CSS就是Cascading Style Sheets,中文翻譯為“層疊樣式表”,簡稱樣式表,它是一種制作網(wǎng)頁的新技術(shù)。
網(wǎng)頁設(shè)計(jì)最初是用HTML標(biāo)記來定義頁面文檔及格式,例如標(biāo)題h1、段落p、表格table、鏈接a等,但這些標(biāo)記不能滿足更多的文檔樣式需求,為了解決這個(gè)問題,在1997年W3C(The World Wide Web Consortium)頒布HTML4標(biāo)準(zhǔn)的同時(shí)也公布了有關(guān)樣式表的第一個(gè)標(biāo)準(zhǔn)CSS1, 自CSS1的版本之后,又在1998年5月發(fā)布了CSS2版本,樣式表得到了更多的充實(shí)。W3C把DHTML(Dynamic HTML)分為三個(gè)部分來實(shí)現(xiàn):腳本語言(包括JavaScript、Vbscript等)、支持動(dòng)態(tài)效果的瀏覽器(包括Internet Explorer、Netscape Navigator等)和CSS樣式表。
注意:CSS需要IE4(Internet Explorer 4.0)和NC4(Netscape 4.0)以上的瀏覽器支持,有些效果需要更高版本的瀏覽器支持。
三.怎樣使用CSS
如果你使用的是Dreamweaver MX 2004以上的版本,在定義文字字體、顏色、大小等屬性的時(shí)候,查看一下代碼你會發(fā)現(xiàn)有這樣的一部分在head區(qū)域:
style type="text/css"
!--
.STYLE2 {
font-size: 16pt;
font-family: "Courier New", Courier, monospace;
font-weight: bold;
color: #FF3300;
}
--
/style
那么恭喜你,你已經(jīng)使用了CSS設(shè)計(jì)網(wǎng)頁。
那么除了這種調(diào)用CSS的方法外,還有別的嗎?回答是“當(dāng)然有了”,下面是系統(tǒng)介紹
標(biāo)記加注法(in-line):
如果只有一個(gè)HTML標(biāo)記需要設(shè)定樣式,則可在該標(biāo)記內(nèi),加上屬性
style=" "
以個(gè)別修訂樣式。
頁面內(nèi)嵌法:
style type="text/css" !-- body { background : white ; color : black ; } -- /style
外部調(diào)用法:
link rel="stylesheet" rev="stylesheet" href="css/style.css" type="text/css" media="all" /
link rel="stylesheet" rev="stylesheet" href="css/style.css" type="text/css" media="all" /
雙表法調(diào)用樣式表:
link rel="stylesheet" rev="stylesheet" href="css/style.css" type="text/css" media="all" /
style type="text/css" media="all"@import url( css/style01.css );/style
1. 基本語法
CSS的定義是由三個(gè)部分構(gòu)成:選擇符(selector),屬性(properties)和屬性的取值(value)。
基本格式如下:
selector {property: value}
(選擇符 {屬性:值})
選擇符是可以是多種形式,一般是你要定義樣式的HTML標(biāo)記,例如BODY、P、TABLE……,你可以通過此方法定義它的屬性和值,屬性和值要用冒號隔開:
body {color: black}
選擇符body是指頁面主體部分,color是控制文字顏色的屬性,black是顏色的值,此例的效果是使頁面中的文字為黑色。
如果屬性的值是多個(gè)單詞組成,必須在值上加引號,比如字體的名稱經(jīng)常是幾個(gè)單詞的組合:
p {font-family: "sans serif"}
(定義段落字體為sans serif)
如果需要對一個(gè)選擇符指定多個(gè)屬性時(shí),我們使用分號將所有的屬性和值分開:
p {text-align: center; color: red}
(段落居中排列;并且段落中的文字為紅色)
為了使你定義的樣式表方便閱讀,你可以采用分行的書寫格式:
p
{
text-align: center;
color: black;
font-family: arial
}
(段落排列居中,段落中文字為黑色,字體是arial)
2. 選擇符組
你可以把相同屬性和值的選擇符組合起來書寫,用逗號將選擇符分開,這樣可以減少樣式重復(fù)定義:
h1, h2, h3, h4, h5, h6 { color: green }
(這個(gè)組里包括所有的標(biāo)題元素,每個(gè)標(biāo)題元素的文字都為綠色)
p, table{ font-size: 9pt }
(段落和表格里的文字尺寸為9號字)
效果完全等效于:
p { font-size: 9pt }
table { font-size: 9pt }
3. 類選擇符
用類選擇符你能夠把相同的元素分類定義不同的樣式,定義類選擇符時(shí),在自定類的名稱前面加一個(gè)點(diǎn)號。假如你想要兩個(gè)不同的段落,一個(gè)段落向右對齊,一個(gè)段落居中,你可以先定義兩個(gè)類:
p.right {text-align: right}
p.center {text-align: center}
然后用不在不同的段落里,只要在HTML標(biāo)記里加入你定義的class參數(shù):
p class="right" 這個(gè)段落向右對齊的
/p
p class="center"
這個(gè)段落是居中排列的
/p
p class="right" 這個(gè)段落向右對齊的
/p
p class="center"
這個(gè)段落是居中排列的
/p
注意:類的名稱可以是任意英文單詞或以英文開頭與數(shù)字的組合,一般以其功能和效果簡要命名。
類選擇符還有一種用法,在選擇符中省略HTML標(biāo)記名,這樣可以把幾個(gè)不同的元素定義成相同的樣式:
.center {text-align: center}
(定義.center的類選擇符為文字居中排列)
這樣的類可以被應(yīng)用到任何元素上。下面我們使h1元素(標(biāo)題1)和p元素(段落)都?xì)w為“center”類,這使兩個(gè)元素的樣式都跟隨“.center”這個(gè)類選擇符:
h1 class="center"
這個(gè)標(biāo)題是居中排列的
/h1
p class="center"
這個(gè)段落也是居中排列的
/p
注意:這種省略HTML標(biāo)記的類選擇符是我們經(jīng)后最常用的CSS方法,使用這種方法,我們可以很方便的在任意元素上套用預(yù)先定義好的類樣式。
4. ID選擇符
在HTML頁面中ID參數(shù)指定了某個(gè)單一元素,ID選擇符是用來對這個(gè)單一元素定義單獨(dú)的樣式。
ID選擇符的應(yīng)用和類選擇符類似,只要把CLASS換成ID即可。將上例中類用ID替代:
p id="intro"
這個(gè)段落向右對齊
/p
定義ID選擇符要在ID名稱前加上一個(gè)“#”號。和類選擇符相同,定義ID選擇符的屬性也有兩種方法。下面這個(gè)例子,ID屬性將匹配所有id="intro"的元素:
#intro
{
font-size:110%;
font-weight:bold;
color:#0000ff;
background-color:transparent
}
(字體尺寸為默認(rèn)尺寸的110%;粗體;藍(lán)色;背景顏色透明)
下面這個(gè)例子,ID屬性只匹配id="intro"的段落元素:
p#intro
{
font-size:110%;
font-weight:bold;
color:#0000ff;
background-color:transparent
}
注意:ID選擇符局限性很大,只能單獨(dú)定義某個(gè)元素的樣式,一般只在特殊情況下使用。
5. 包含選擇符
可以單獨(dú)對某種元素包含關(guān)系定義的樣式表,元素1里包含元素2,這種方式只對在元素1里的元素2定義,對單獨(dú)的元素1或元素2無定義,例如:
table a
{
font-size: 12px
}
在表格內(nèi)的鏈接改變了樣式,文字大小為12象素,而表格外的鏈接的文字仍為默認(rèn)大小。
6. 樣式表的層疊性
層疊性就是繼承性,樣式表的繼承規(guī)則是外部的元素樣式會保留下來繼承給這個(gè)元素所包含的其他元素。事實(shí)上,所有在元素中嵌套的元素都會繼承外層元素指定的屬性值,有時(shí)會把很多層嵌套的樣式疊加在一起,除非另外更改。例如在DIV標(biāo)記中嵌套P標(biāo)記:
div { color: red; font-size:9pt}
……
div
p
這個(gè)段落的文字為紅色9號字
/p
/div
(P元素里的內(nèi)容會繼承DIV定義的屬性)
注意:有些情況下內(nèi)部選擇符不繼承周圍選擇符的值,但理論上這些都是特殊的。例如,上邊界屬性值是不會繼承的,直覺上,一個(gè)段落不會同文檔BODY一樣的上邊界值。
另外,當(dāng)樣式表繼承遇到?jīng)_突時(shí),總是以最后定義的樣式為準(zhǔn)。如果上例中定義了P的顏色:
div { color: red; font-size:9pt}
p {color: blue}
……
div
p
這個(gè)段落的文字為藍(lán)色9號字
/p
/div
我們可以看到段落里的文字大小為9號字是繼承div屬性的,而color屬性則依照最后定義的。
不同的選擇符定義相同的元素時(shí),要考慮到不同的選擇符之間的優(yōu)先級。ID選擇符,類選擇符和HTML標(biāo)記選擇符,因?yàn)镮D選擇符是最后加上元素上的,所以優(yōu)先級最高,其次是類選擇符。如果想超越這三者之間的關(guān)系,可以用!important提升樣式表的優(yōu)先權(quán),例如:
p { color: #FF0000!important }
.blue { color: #0000FF}
#id1 { color: #FFFF00}
我們同時(shí)對頁面中的一個(gè)段落加上這三種樣式,它最后會依照被!important申明的HTML標(biāo)記選擇符樣式為紅色文字。如果去掉!important,則依照優(yōu)先權(quán)最高的ID選擇符為黃色文字。
7. 注釋
你可以在CSS中插入注釋來說明你代碼的意思,注釋有利于你或別人以后編輯和更改代碼時(shí)理解代碼的含義。在瀏覽器中,注釋是不顯示的。CSS注釋以"/*" 開頭,以"*/" 結(jié)尾,如下:
/* 定義段落樣式表 */
p
{
text-align: center; /* 文本居中排列 */
color: black; /* 文字為黑色 */
font-family: arial /* 字體為arial */
}
/* 定義段落樣式表 */
p
{
text-align: center; /* 文本居中排列 */
color: black; /* 文字為黑色 */
font-family: arial /* 字體為arial */
}
前面我們了解了CSS的語法,但要想在瀏覽器中顯示出效果,就要讓瀏覽器識別并調(diào)用。當(dāng)瀏覽器讀取樣式表時(shí),要依照文本格式來讀,這里介紹四種在頁面中插入樣式表的方法:[u]鏈入外部樣式表[/u]、[u]內(nèi)部樣式表[/u]、[u]導(dǎo)入外表樣式表[/u]和[u]內(nèi)嵌樣式[/u]。
1. 鏈入外部樣式表
鏈入外部樣式表是把樣式表保存為一個(gè)樣式表文件,然后在頁面中用link標(biāo)記鏈接到這個(gè)樣式表文件,這個(gè)link標(biāo)記必須放到頁面的head區(qū)內(nèi),如下:
head
……
link href="mystyle.css" rel="stylesheet" type="text/css" media="all"
……
/head
上面這個(gè)例子表示瀏覽器從mystyle.css文件中以文檔格式讀出定義的樣式表。rel=”stylesheet”是指在頁面中使用這個(gè)外部的樣式表。type=”text/css”是指文件的類型是樣式表文本。href=”mystyle.css”是文件所在的位置。media是選擇媒體類型,這些媒體包括:屏幕,紙張,語音合成設(shè)備,盲文閱讀設(shè)備等。
一個(gè)外部樣式表文件可以應(yīng)用于多個(gè)頁面。當(dāng)你改變這個(gè)樣式表文件時(shí),所有頁面的樣式都隨之而改變。在制作大量相同樣式頁面的網(wǎng)站時(shí),非常有用,不僅減少了重復(fù)的工作量,而且有利于以后的修改、編輯,瀏覽時(shí)也減少了重復(fù)下載代碼。
樣式表文件可以用任何文本編輯器(例如:記事本)打開并編輯,一般樣式表文件擴(kuò)展名為.css。內(nèi)容是定義的樣式表,不包含HTML標(biāo)記,mystyle.css這個(gè)文件的內(nèi)容如下:
hr {color: sienna}
p {margin-left: 20px}
body {background-image: url("images/back40.gif")}
/*定義水平線的顏色為土黃;段落左邊的空白邊距為20象素;頁面的背景圖片為images目錄下的back40.gif文件*/
2. 內(nèi)部樣式表
內(nèi)部樣式表是把樣式表放到頁面的head區(qū)里,這些定義的樣式就應(yīng)用到頁面中了,樣式表是用style標(biāo)記插入的,從下例中可以看出style標(biāo)記的用法:
head
……
style type="text/css"
hr {color: sienna}
p {margin-left: 20px}
body {background-image: url("images/back40.gif")}
/style
……
/head
注意:有些低版本的瀏覽器不能識別style標(biāo)記,這意味著低版本的瀏覽器會忽略style標(biāo)記里的內(nèi)容,并把style標(biāo)記里的內(nèi)容以文本直接顯示到頁面上。為了避免這樣的情況發(fā)生,我們用加HTML注釋的方式(!-- 注釋 --)隱藏內(nèi)容而不讓它顯示:
head
……
style type="text/css"
!--
hr {color: sienna}
p {margin-left: 20px}
body {background-image: url("images/back40.gif")}
--
/style
……
/head
3. 導(dǎo)入外部樣式表
導(dǎo)入外部樣式表是指在內(nèi)部樣式表的style里導(dǎo)入一個(gè)外部樣式表,導(dǎo)入時(shí)用@import,看下面這個(gè)實(shí)例:
head
……
style type=”text/css”
!--
@import “mystyle.css”
其他樣式表的聲明
--
/style
……
/head
例中@import “mystyle.css”表示導(dǎo)入mystyle.css樣式表,注意使用時(shí)外部樣式表的路徑。方法和鏈入樣式表的方法很相似,但導(dǎo)入外部樣式表輸入方式更有優(yōu)勢。實(shí)質(zhì)上它相當(dāng)于存在內(nèi)部樣式表中的。
注意:導(dǎo)入外部樣式表必須在樣式表的開始部分,在其他內(nèi)部樣式表上面。
4. 內(nèi)嵌樣式
內(nèi)嵌樣式是混合在HTML標(biāo)記里使用的,用這種方法,可以很簡單的對某個(gè)元素單獨(dú)定義樣式。內(nèi)嵌樣式的使用是直接將在HTML標(biāo)記里加入style參數(shù)。而style參數(shù)的內(nèi)容就是CSS的屬性和值,如下例:
p style="color: sienna;margin-left: 20px;"
這是一個(gè)段落
/p
!--這個(gè)段落顏色為土黃,左邊距為20象素--
在style參數(shù)后面的引號里的內(nèi)容相當(dāng)于在樣式表大括號里的內(nèi)容。
注意:style參數(shù)可以應(yīng)用于任意BODY內(nèi)的元素(包括BODY本身),除了BASEFONT、PARAM和SCRIPT。
5. 多重樣式表的疊加
上一章里我們已經(jīng)提到樣式表的層疊順序,這里我們討論插入樣式表的這幾種方法的疊加,如果在同一個(gè)選擇器上使用幾個(gè)不同的樣式表時(shí),這個(gè)屬性值將會疊加幾個(gè)樣式表,遇到?jīng)_突的地方會以最后定義的為準(zhǔn)。例如,我們首先鏈入一個(gè)外部樣式表,其中定義了h3選擇符的color 、text-alig和font-size屬性:
h3
{
color: red;
text-align: left;
font-size: 8pt;
}
/*標(biāo)題3的文字顏色為紅色;向左對齊;文字尺寸為8號字*/
然后在內(nèi)部樣式表里也定義了h3選擇符的text-align和font-size屬性:
h3
{
text-align: right;
font-size: 20pt;
}
/*標(biāo)題3文字向右對齊;尺寸為20號字*/
那么這個(gè)頁面疊加后的樣式就是:
color: red;
text-align: right;
font-size: 20pt;
/*文字顏色為紅色;向右對齊;尺寸為20號字*/
字體顏色從外部樣式表里保留下來,而對齊方式和字體尺寸都有定義時(shí),按照后定義的優(yōu)先而依照內(nèi)部樣式表。
注意:依照后定義的優(yōu)先,所以優(yōu)先級最高的是[s]內(nèi)嵌樣式[/s],[s]內(nèi)部樣式表[/s]高于[s]導(dǎo)入外部樣式表[/s],[s]鏈入的外部樣式表[/s]和[s]內(nèi)部樣式表[/s]之間是最后定義的優(yōu)先級高。
link rel="stylesheet" rev="stylesheet" href="css/style.css" type="text/css" media="all" /
style type="text/css" media="all"@import url( css/style01.css );/style
————————————————————————————————————————————
1. 基本語法
CSS的定義是由三個(gè)部分構(gòu)成:選擇符(selector),屬性(properties)和屬性的取值(value)。
基本格式如下:
selector {property: value}
(選擇符 {屬性:值})
選擇符是可以是多種形式,一般是你要定義樣式的HTML標(biāo)記,例如BODY、P、TABLE……,你可以通過此方法定義它的屬性和值,屬性和值要用冒號隔開:
body {color: black}
選擇符body是指頁面主體部分,color是控制文字顏色的屬性,black是顏色的值,此例的效果是使頁面中的文字為黑色。
如果屬性的值是多個(gè)單詞組成,必須在值上加引號,比如字體的名稱經(jīng)常是幾個(gè)單詞的組合:
p {font-family: "sans serif"}
(定義段落字體為sans serif)
如果需要對一個(gè)選擇符指定多個(gè)屬性時(shí),我們使用分號將所有的屬性和值分開:
p {text-align: center; color: red}
(段落居中排列;并且段落中的文字為紅色)
為了使你定義的樣式表方便閱讀,你可以采用分行的書寫格式:
p
{
text-align: center;
color: black;
font-family: arial
}
(段落排列居中,段落中文字為黑色,字體是arial)
2. 選擇符組
你可以把相同屬性和值的選擇符組合起來書寫,用逗號將選擇符分開,這樣可以減少樣式重復(fù)定義:
h1, h2, h3, h4, h5, h6 { color: green }
(這個(gè)組里包括所有的標(biāo)題元素,每個(gè)標(biāo)題元素的文字都為綠色)
p, table{ font-size: 9pt }
(段落和表格里的文字尺寸為9號字)
效果完全等效于:
p { font-size: 9pt }
table { font-size: 9pt }
3. 類選擇符
用類選擇符你能夠把相同的元素分類定義不同的樣式,定義類選擇符時(shí),在自定類的名稱前面加一個(gè)點(diǎn)號。假如你想要兩個(gè)不同的段落,一個(gè)段落向右對齊,一個(gè)段落居中,你可以先定義兩個(gè)類:
p.right {text-align: right}
p.center {text-align: center}
然后用不在不同的段落里,只要在HTML標(biāo)記里加入你定義的class參數(shù):
p class="right" 這個(gè)段落向右對齊的
/p
p class="center"
這個(gè)段落是居中排列的
/p
p class="right" 這個(gè)段落向右對齊的
/p
p class="center"
這個(gè)段落是居中排列的
/p
注意:類的名稱可以是任意英文單詞或以英文開頭與數(shù)字的組合,一般以其功能和效果簡要命名。
類選擇符還有一種用法,在選擇符中省略HTML標(biāo)記名,這樣可以把幾個(gè)不同的元素定義成相同的樣式:
.center {text-align: center}
(定義.center的類選擇符為文字居中排列)
這樣的類可以被應(yīng)用到任何元素上。下面我們使h1元素(標(biāo)題1)和p元素(段落)都?xì)w為“center”類,這使兩個(gè)元素的樣式都跟隨“.center”這個(gè)類選擇符:
h1 class="center"
這個(gè)標(biāo)題是居中排列的
/h1
p class="center"
這個(gè)段落也是居中排列的
/p
注意:這種省略HTML標(biāo)記的類選擇符是我們經(jīng)后最常用的CSS方法,使用這種方法,我們可以很方便的在任意元素上套用預(yù)先定義好的類樣式。
4. ID選擇符
在HTML頁面中ID參數(shù)指定了某個(gè)單一元素,ID選擇符是用來對這個(gè)單一元素定義單獨(dú)的樣式。
ID選擇符的應(yīng)用和類選擇符類似,只要把CLASS換成ID即可。將上例中類用ID替代:
p id="intro"
這個(gè)段落向右對齊
/p
定義ID選擇符要在ID名稱前加上一個(gè)“#”號。和類選擇符相同,定義ID選擇符的屬性也有兩種方法。下面這個(gè)例子,ID屬性將匹配所有id="intro"的元素:
#intro
{
font-size:110%;
font-weight:bold;
color:#0000ff;
background-color:transparent
}
(字體尺寸為默認(rèn)尺寸的110%;粗體;藍(lán)色;背景顏色透明)
下面這個(gè)例子,ID屬性只匹配id="intro"的段落元素:
p#intro
{
font-size:110%;
font-weight:bold;
color:#0000ff;
background-color:transparent
}
注意:ID選擇符局限性很大,只能單獨(dú)定義某個(gè)元素的樣式,一般只在特殊情況下使用。
5. 包含選擇符
可以單獨(dú)對某種元素包含關(guān)系定義的樣式表,元素1里包含元素2,這種方式只對在元素1里的元素2定義,對單獨(dú)的元素1或元素2無定義,例如:
table a
{
font-size: 12px
}
在表格內(nèi)的鏈接改變了樣式,文字大小為12象素,而表格外的鏈接的文字仍為默認(rèn)大小。
6. 樣式表的層疊性
層疊性就是繼承性,樣式表的繼承規(guī)則是外部的元素樣式會保留下來繼承給這個(gè)元素所包含的其他元素。事實(shí)上,所有在元素中嵌套的元素都會繼承外層元素指定的屬性值,有時(shí)會把很多層嵌套的樣式疊加在一起,除非另外更改。例如在DIV標(biāo)記中嵌套P標(biāo)記:
div { color: red; font-size:9pt}
……
div
p
這個(gè)段落的文字為紅色9號字
/p
/div
(P元素里的內(nèi)容會繼承DIV定義的屬性)
注意:有些情況下內(nèi)部選擇符不繼承周圍選擇符的值,但理論上這些都是特殊的。例如,上邊界屬性值是不會繼承的,直覺上,一個(gè)段落不會同文檔BODY一樣的上邊界值。
另外,當(dāng)樣式表繼承遇到?jīng)_突時(shí),總是以最后定義的樣式為準(zhǔn)。如果上例中定義了P的顏色:
div { color: red; font-size:9pt}
p {color: blue}
……
div
p
這個(gè)段落的文字為藍(lán)色9號字
/p
/div
我們可以看到段落里的文字大小為9號字是繼承div屬性的,而color屬性則依照最后定義的。
不同的選擇符定義相同的元素時(shí),要考慮到不同的選擇符之間的優(yōu)先級。ID選擇符,類選擇符和HTML標(biāo)記選擇符,因?yàn)镮D選擇符是最后加上元素上的,所以優(yōu)先級最高,其次是類選擇符。如果想超越這三者之間的關(guān)系,可以用!important提升樣式表的優(yōu)先權(quán),例如:
p { color: #FF0000!important }
.blue { color: #0000FF}
#id1 { color: #FFFF00}
我們同時(shí)對頁面中的一個(gè)段落加上這三種樣式,它最后會依照被!important申明的HTML標(biāo)記選擇符樣式為紅色文字。如果去掉!important,則依照優(yōu)先權(quán)最高的ID選擇符為黃色文字。
7. 注釋
你可以在CSS中插入注釋來說明你代碼的意思,注釋有利于你或別人以后編輯和更改代碼時(shí)理解代碼的含義。在瀏覽器中,注釋是不顯示的。CSS注釋以"/*" 開頭,以"*/" 結(jié)尾,如下:
/* 定義段落樣式表 */
p
{
text-align: center; /* 文本居中排列 */
color: black; /* 文字為黑色 */
font-family: arial /* 字體為arial */
}
/* 定義段落樣式表 */
p
{
text-align: center; /* 文本居中排列 */
color: black; /* 文字為黑色 */
font-family: arial /* 字體為arial */
}
樣式表文件可以用任何文本編輯器(例如:記事本)打開并編輯,一般樣式表文件擴(kuò)展名為.css。內(nèi)容是定義的樣式表,不包含HTML標(biāo)記,mystyle.css這個(gè)文件的內(nèi)容如下:
hr {color: sienna}
p {margin-left: 20px}
body {background-image: url("images/back40.gif")}
/*定義水平線的顏色為土黃;段落左邊的空白邊距為20象素;頁面的背景圖片為images目錄下的back40.gif文件*/
/* 定義段落樣式表 */
p
{
text-align: center; /* 文本居中排列 */
color: black; /* 文字為黑色 */
font-family: arial /* 字體為arial */
}
p class="right" 這個(gè)段落向右對齊的
/p
p class="center"
這個(gè)段落是居中排列的
/p
多做,多練,多實(shí)踐,開始,你可以試著做一下網(wǎng)頁布局,找一些DIV+CSS的網(wǎng)站試著做,看你能不能跟它做的一模一樣,做多了,自然就會了