CSS布局與傳統(tǒng)表格(table)布局最大的區(qū)別在于:原來(lái)的定位都是采用表格,通過(guò)表格的間距或者用無(wú)色透明的GIF圖片來(lái)控制文布局版塊的間距;而現(xiàn)在則采用層(P)來(lái)定位,通過(guò)層的margin,padding,border等屬性來(lái)控制版塊的間距。
分析一個(gè)典型的定義P例子:
#sample{ MARGIN: 10px 10px 10px 10px;說(shuō)明如下:
下面是這個(gè)層的實(shí)際表現(xiàn):
這里是演示內(nèi)容,這里是演示內(nèi)容,這里是演示內(nèi)容,這里是演示內(nèi)容,這里是演示內(nèi)容,這里是演示內(nèi)容,這里是演示內(nèi)容,這里是演示內(nèi)容,
這里是演示內(nèi)容,這里是演示內(nèi)容,
這里是演示內(nèi)容,這里是演示內(nèi)容,
這里是演示內(nèi)容…我們可以看到邊框是2px的灰色,背景圖片在右下沒(méi)有重復(fù),內(nèi)容距離上和左邊框20px,內(nèi)容居中,一切和預(yù)想的一樣。hoho,雖然不好看,但它是最基本的,掌握了它,你就已經(jīng)學(xué)會(huì)一半的CSS布局技術(shù)了。就是這樣,不算難吧!(另一半是什么?另一半是層與層之間的定位。我會(huì)在后面逐步講解。)
自從1996年CSS1的推出,W3C組織就建議把所有網(wǎng)頁(yè)上的對(duì)像都放在一個(gè)盒(box)中,設(shè)計(jì)師可以通過(guò)創(chuàng)建定義來(lái)控制這個(gè)盒的屬性,這些對(duì)像包括段落、列表、標(biāo)題、圖片以及層<P>。盒模型主要定義四個(gè)區(qū)域:內(nèi)容(content)、邊框距(padding)、邊界(border)和邊距(margin)。上面我們講的sample層就是一個(gè)典型的盒。對(duì)于初學(xué)者,經(jīng)常會(huì)搞不清楚margin,background-color,background-image,padding,content,border之間的層次、關(guān)系和相互影響。這里提供一張盒模型的3D示意圖,希望便于你的理解和記憶。
用XHTML+CSS布局,有一個(gè)技術(shù)一開(kāi)始讓你不習(xí)慣,應(yīng)該說(shuō)是一種思維方式與傳統(tǒng)表格布局不一樣,那就是:所有輔助圖片都用背景來(lái)實(shí)現(xiàn)。類似這樣:
BACKGROUND: url(images/bg_poem.jpg) #FEFEFE no-repeat right bottom;盡管可以用<img>直接插在內(nèi)容中,但這是不允許的。這里的”輔助圖片”是指那些不是作為頁(yè)面要表達(dá)的內(nèi)容的一部分,而僅僅用于修飾、間隔、提醒的圖片。例如:相冊(cè)中的圖片、圖片新聞中的圖片,上面的3d盒模型圖片都屬于內(nèi)容的一部分,它們可以用<img>元素直接插在頁(yè)面里,而其它的類似logo,標(biāo)題圖片,列表前綴圖片都必須采用背景方式或者其他CSS方式顯示。
這樣做的原因有2點(diǎn):
在了解XHTML代碼規(guī)范后,我們就要進(jìn)行CSS布局。首先先介紹一些CSS的入門(mén)知識(shí)。如果你已經(jīng)很熟悉了,可以跳過(guò)這一節(jié),直接進(jìn)入下一節(jié)。
CSS是Cascading Style Sheets(層疊樣式表)的縮寫(xiě)。是一種對(duì)web文檔添加樣式的簡(jiǎn)單機(jī)制,屬于表現(xiàn)層的布局語(yǔ)言。
分析一個(gè)典型CSS的語(yǔ)句:
p {COLOR:#FF0000;BACKGROUND:#FFFFFF}顏色值可以用RGB值寫(xiě),例如:color : rgb(255,0,0),也可以用十六進(jìn)制寫(xiě),就象上面例子color:#FF0000。如果十六進(jìn)制值是成對(duì)重復(fù)的可以簡(jiǎn)寫(xiě),效果一樣。例如:#FF0000可以寫(xiě)成#F00。但如果不重復(fù)就不可以簡(jiǎn)寫(xiě),例如#FC1A1B必須寫(xiě)滿六位。
web標(biāo)準(zhǔn)推薦如下字體定義方法:
body { font-family : “Lucida Grande”, Verdana, Lucida, Arial, Helvetica, 宋體,sans-serif; }當(dāng)幾個(gè)元素樣式屬性一樣時(shí),可以共同調(diào)用一個(gè)聲明,元素之間用逗號(hào)分隔,: p, td, li { font-size : 12px ; }
可以使用派生選擇器給一個(gè)元素里的子元素定義樣式,例如這樣:
li strong { font-style : italic; font-weight : normal;}就是給li下面的子元素strong定義一個(gè)斜體不加粗的樣式。
用CSS布局主要用層”P”來(lái)實(shí)現(xiàn),而P的樣式通過(guò)”id選擇器”來(lái)定義。例如我們首先定義一個(gè)層
<P id=”menubar”></P>然后在樣式表里這樣定義:
#menubar {MARGIN: 0px;BACKGROUND: #FEFEFE;COLOR: #666;}其中”menubar”是你自己定義的id名稱。注意在前面加”#”號(hào)。
id選擇器也同樣支持派生,例如:
#menubar p { text-align : right; margin-top : 10px; }這個(gè)方法主要用來(lái)定義層和那些比較復(fù)雜,有多個(gè)派生的元素。
在CSS里用一個(gè)點(diǎn)開(kāi)頭表示類別選擇器定義,例如:
.14px {color : #f60 ;font-size:14px ;}在頁(yè)面中,用class=”類別名”的方法調(diào)用:
<span class=”14px”>14px大小的字體</span>這個(gè)方法比較簡(jiǎn)單靈活,可以隨時(shí)根據(jù)頁(yè)面需要新建和刪除。
CSS中用四個(gè)偽類來(lái)定義鏈接的樣式,分別是:a:link、a:visited、a:hover和a : active,例如:
a:link{font-weight : bold ;text-decoration : none ;color : #c00 ;}以上語(yǔ)句分別定義了”鏈接、已訪問(wèn)過(guò)的鏈接、鼠標(biāo)停在上方時(shí)、點(diǎn)下鼠標(biāo)時(shí)”的樣式。注意,必須按以上順序?qū)懀駝t顯示可能和你預(yù)想的不一樣。記住它們的順序是“LVHA”。
呵呵,看了這么多,有點(diǎn)頭暈吧,實(shí)際上CSS的語(yǔ)法規(guī)范還有很多,這里列的只是一些常用的,畢竟我們是循序漸進(jìn),不可能一口吃成胖子:)
]]>