Java Blog From WeiChunHua

          Java

          常用鏈接

          統(tǒng)計(jì)

          develop

          news

          最新評論

          CSS 全解

          CSS在英文中有如下幾種常見的縮寫:

          1,Cascading Style Sheets 層疊樣式表

          2,Content Scrambling System DVD電影的加密系統(tǒng)

          3,Cast Semi-Steel 半鑄鋼, 鋼性鑄鐵

          4,College Scholarship Service 大學(xué)獎(jiǎng)學(xué)金處



          其中在網(wǎng)絡(luò)上最常見的是Cascading Style Sheets(層疊樣式表)

          感性體驗(yàn)CSS


          什么是CSS呢?你可能急迫的想知道答案。但是空泛的文字描述意義不大,讓我們先來一點(diǎn)感性體驗(yàn)吧。看看這個(gè)沒有添加CSS的HTML文件:http://www.csszengarden.com/zengarden-sample.html
          是一個(gè)普普通通的網(wǎng)頁。然而通過給這個(gè)文件添加的CSS規(guī)則,我們可以得到十分美觀的網(wǎng)頁:http://www.csszengarden.com/

          這還不是全部,不改動(dòng)HTML,只是通過添加不同的CSS規(guī)則,我們就可以得到各種不同樣式的網(wǎng)頁:
          http://www.csszengarden.com/?cssfile=/208/208.css&page=0
          好了,下面我們再來回答什么是CSS這個(gè)問題。

          什么是Cascading Style Sheets(層疊樣式表)

          * CSS是Cascading Style Sheets(層疊樣式表)的簡稱.
          * CSS語言是一種標(biāo)記語言,它不需要編譯,可以直接由瀏覽器執(zhí)行(屬于瀏覽器解釋型語言).
          * 在標(biāo)準(zhǔn)網(wǎng)頁設(shè)計(jì)中CSS負(fù)責(zé)網(wǎng)頁內(nèi)容(XHTML)的表現(xiàn).
          * CSS文件也可以說是一個(gè)文本文件,它包含了一些CSS標(biāo)記,CSS文件必須使用css為文件名后綴.
          * 可以通過簡單的更改CSS文件,改變網(wǎng)頁的整體表現(xiàn)形式,可以減少我們的工作量,所以她是每一個(gè)網(wǎng)頁設(shè)計(jì)人員的必修課.
          * CSS是由W3C的CSS工作組產(chǎn)生和維護(hù)的.
          如何將樣式表加入到網(wǎng)頁
          可以用以下三種方式將樣式表加入您的網(wǎng)頁。而最接近目標(biāo)的樣式定義優(yōu)先權(quán)越高。高優(yōu)先權(quán)樣式將繼承低優(yōu)先權(quán)樣式的未重疊定義但覆蓋重疊的定義。例外請參閱 !important 聲明。

          鏈入外部樣式表文件 (Linking to a Style Sheet)
          你可以先建立外部樣式表文件(.css),然后使用HTML的link對象。示例如下:
          <head>
          <title>文檔標(biāo)題</title>
          <link rel=stylesheet type="text/css">
          </head>
          而在XML中,你應(yīng)該如下例所示在聲明區(qū)中加入:
          <? xml-stylesheet type="text/css" ?>

          定義內(nèi)部樣式塊對象 (Embedding a Style Block)
          你可以在你的HTML文檔的<HTML>和<BODY>標(biāo)記之間插入一個(gè)<STYLE>...</STYLE>塊對象。 定義方式請參閱樣式表語法。示例如下:
          <html>
          <head>
          <title>文檔標(biāo)題</title>
          <style type="text/css">
          <!--
          body {font: 10pt "Arial"}
          h1 {font: 15pt/17pt "Arial"; font-weight: bold; color: maroon}
          h2 {font: 13pt/15pt "Arial"; font-weight: bold; color: blue}
          p {font: 10pt/12pt "Arial"; color: black}
          -->
          </style>
          </head>
          <body>
          請注意,這里將style對象的type屬性設(shè)置為"text/css",是允許不支持這類型的瀏覽器忽略樣式表單。

          內(nèi)聯(lián)定義 (Inline Styles)
          內(nèi)聯(lián)定義即是在對象的標(biāo)記內(nèi)使用對象的style屬性定義適用其的樣式表屬性。示例如下:
          這一行被增加了左右的外補(bǔ)丁


          Cascading Style Sheets(層疊樣式表)的歷史
          從1990年代初HTML被發(fā)明開始樣式表就以各種形式出現(xiàn)了,不同的瀏覽器結(jié)合了它們各自的樣式語言,讀者可以使用這些樣式語言來調(diào)節(jié)網(wǎng)頁的顯示方式。一開始樣式表是給讀者用的,最初的HTML版本只含有很少的顯示屬性,讀者來決定網(wǎng)頁應(yīng)該怎樣被顯示。
          但隨著HTML的成長,為了滿足設(shè)計(jì)師的要求,HTML獲得了很多顯示功能。隨著這些功能的增加外來定義樣式的語言越來越?jīng)]有意義了。
          1994年哈坤·利提出了CSS的最初建議。伯特·波斯(Bert Bos)當(dāng)時(shí)正在設(shè)計(jì)一個(gè)叫做Argo的瀏覽器,他們決定一起合作設(shè)計(jì)CSS。
          當(dāng)時(shí)已經(jīng)有過一些樣式表語言的建議了,但CSS是第一個(gè)含有“層疊”的主意的。在CSS中,一個(gè)文件的樣式可以從其它的樣式表中繼承下來。讀者在有些地方可以使用他自己更喜歡的樣式,在其他地方則繼承,或“層疊”作者的樣式。這種層疊的方式使作者和讀者都可以靈活地加入自己的設(shè)計(jì),混合各人的愛好。
          哈坤于1994年在芝加哥的一次會(huì)議上第一次展示了CSS的建議,1995年他與波斯一起再次展示這個(gè)建議。當(dāng)時(shí)W3C剛剛建立,W3C對CSS的發(fā)展很感興趣,它為此組織了一次討論會(huì)。哈坤、波斯和其他一些人(比如微軟的托馬斯·雷爾登)是這個(gè)項(xiàng)目的主要技術(shù)負(fù)責(zé)人。1996年底,CSS已經(jīng)完成。1996年12月CSS要求的第一版本被出版。
          1997年初,W3C內(nèi)組織了專門管CSS的工作組,其負(fù)責(zé)人是克里斯·里雷。這個(gè)工作組開始討論第一版中沒有涉及到的問題,其結(jié)果是1998年5月出版的第二版要求。到2004年為止,第三版還未出版。

          * 1996年W3C正式推出了CSS1.
          * 1998年W3C正式推出了CSS2.
          * CSS2.1是W3C現(xiàn)在正在推薦使用的.
          * CSS3現(xiàn)在還處于開發(fā)中.

          網(wǎng)頁設(shè)計(jì)中常用的CSS屬性

          文字或元素的顏色 color
          背景顏色 background-color
          背景圖像 background-image
          字體 font-family
          文字大小 font-size
          列表樣式 list
          鼠標(biāo)樣式 cursor
          邊框樣式 border
          內(nèi)補(bǔ)白 padding
          外邊距 margin
          等...


          CSS的語法:
            CSS的定義是由三個(gè)部分構(gòu)成:
            選擇符(selector),屬性(properties)和屬性的取值(value)。
            語法: selector {property: value} (選擇符 {屬性:值})
            說明:
            ·選擇符是可以是多種形式,一般是你要定義樣式的HTML標(biāo)記,例如BODY、P、TABLE……,你可以通過此方法定義它的屬性和值,屬性和值要用冒號(hào)隔開:
            例子:body {color: black},此例的效果是使頁面中的文字為黑色。
            ·如果屬性的值是多個(gè)單詞組成,必須在值上加引號(hào),比如字體的名稱經(jīng)常是幾個(gè)單詞的組合:
            例子:p {font-family: "sans serif"} (定義段落字體為sans serif)
            · 如果需要對一個(gè)選擇符指定多個(gè)屬性時(shí),我們使用分號(hào)將所有的屬性和值分開:
            例子:p {text-align: center; color: red} (段落居中排列;并且段落中的文字為紅色)
            2. 選擇符組
            你可以把相同屬性和值的選擇符組合起來書寫,用逗號(hào)將選擇符分開,這樣可以減少樣式重復(fù)定義:
            h1, h2, h3, h4, h5, h6 { color: green } (這個(gè)組里包括所有的標(biāo)題元素,每個(gè)標(biāo)題元素的文字都為綠色)
            p, table{ font-size: 9pt } (段落和表格里的文字尺寸為9號(hào)字)
            效果完全等效于:
            p { font-size: 9pt }
            table { font-size: 9pt }
            3. 類選擇符
            用類選擇符你能夠把相同的元素分類定義不同的樣式,定義類選擇符時(shí),在自定類的名稱前面加一個(gè)點(diǎn)號(hào)。假如你想要兩個(gè)不同的段落,一個(gè)段落向右對齊,一個(gè)段落居中,你可以先定義兩個(gè)類:
            p.right {text-align: right}
            p.center {text-align: center}
            然后用不在不同的段落里,只要在HTML標(biāo)記里加入你定義的class參數(shù):
            這個(gè)段落向右對齊的
            這個(gè)段落是居中排列的
            類選擇符還有一種用法,在選擇符中省略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>
            這個(gè)段落也是居中排列的

            注意:這種省略HTML標(biāo)記的類選擇符是我們經(jīng)后最常用的CSS方法,使用這種方法,我們可以很方便的在任意元素上套用預(yù)先定義好的類樣式。
            4. ID選擇符
            在HTML頁面中ID參數(shù)指定了某個(gè)單一元素,ID選擇符是用來對這個(gè)單一元素定義單獨(dú)的樣式。
            ID選擇符的應(yīng)用和類選擇符類似,只要把CLASS換成ID即可。將上例中類用ID替代:
            這個(gè)段落向右對齊
            定義ID選擇符要在ID名稱前加上一個(gè)“#”號(hào)。和類選擇符相同,定義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ī)則是外部的元素樣式會(huì)保留下來繼承給這個(gè)元素所包含的其他元素。事實(shí)上,所有在元素中嵌套的元素都會(huì)繼承外層元素指定的屬性值,有時(shí)會(huì)把很多層嵌套的樣式疊加在一起,除非另外更改。例如在DIV標(biāo)記中嵌套P標(biāo)記:
            div { color: red; font-size:9pt}
            ……
            這個(gè)段落的文字為紅色9號(hào)字
            (P元素里的內(nèi)容會(huì)繼承DIV定義的屬性)
            注意:有些情況下內(nèi)部選擇符不繼承周圍選擇符的值,但理論上這些都是特殊的。例如,上邊界屬性值是不會(huì)繼承的,直覺上,一個(gè)段落不會(huì)同文檔BODY一樣的上邊界值。
            另外,當(dāng)樣式表繼承遇到?jīng)_突時(shí),總是以最后定義的樣式為準(zhǔn)。如果上例中定義了P的顏色:
            div { color: red; font-size:9pt}
            p {color: blue}
            ……
            這個(gè)段落的文字為藍(lán)色9號(hào)字
            我們可以看到段落里的文字大小為9號(hào)字是繼承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è)段落加上這三種樣式,它最后會(huì)依照被!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 */
            }



          css可以用任何寫文本的工具進(jìn)行開發(fā),如文本工具,dreamweaver開發(fā)
          css也是一種語言,這種語言要和html或者xhtml語言相結(jié)合才起作用,
          css簡單來說就是用來美化網(wǎng)頁用的,用css語言來控制網(wǎng)頁的外觀
          舉個(gè)例子
          xhtml部分:
          <ul>
          <li>主頁</li>
          <li>留言</li>
          <li>論壇</li>
          </ul>
          此時(shí)在頁面上的表達(dá)形式是一個(gè)豎向列表,這樣不夠美觀,
          可以css來改善這個(gè)列表為一個(gè)橫向?qū)Ш綏l和超鏈接
          css部分:
          ul{list-style:none;margin:0px;padding:0px}
          ul li{margin:0px;padding:0px;float:left;}
          ul li a{display:block;width:100px;height:30px;background:#efefef;color:#333;text-decoration:none;text-align:center}
          ul li a:hover{background:#333;color:#fff;}
          添加上css后,這個(gè)列表變成橫向的導(dǎo)航條了,超級鏈接是淡色背景,灰色字體,沒有下劃線,高度是30像素,寬度是100像素
          當(dāng)我們鼠標(biāo)經(jīng)過這個(gè)超級鏈接時(shí)候,變成灰色背景,白色字體


          在主頁制作時(shí)采用CSS技術(shù),可以有效地對頁面的布局、字體、顏色、背景和其它效果實(shí)現(xiàn)更加精確的控制。

          只要對相應(yīng)的代碼做一些簡單的修改,就可以改變同一頁面的不同部分,或者頁數(shù)不同的網(wǎng)頁的外觀和格式。

          它的作用可以達(dá)到:

          (1)在幾乎所有的瀏覽器上都可以使用。

          (2)以前一些非得通過圖片轉(zhuǎn)換實(shí)現(xiàn)的功能,現(xiàn)在只要用CSS就可以輕松實(shí)現(xiàn),從而更快地下載頁面。

          (3)使頁面的字體變得更漂亮,更容易編排,使頁面真正賞心悅目。

          (4)你可以輕松地控制頁面的布局 。

          (5)你可以將許多網(wǎng)頁的風(fēng)格格式同時(shí)更新,不用再一頁一頁地更新了。你可以將站點(diǎn)上所有的網(wǎng)頁風(fēng)格都使用一個(gè)CSS文件進(jìn)行控制,只要修改這個(gè)CSS文件中相應(yīng)的行,那么整個(gè)站點(diǎn)的所有頁面都會(huì)隨之發(fā)生變動(dòng)。

          想一想,沒有使用CSS前我們是如何控制字體的顏色和大小以及所使用的字體的?我們一般使用HTML標(biāo)簽來實(shí)現(xiàn),代碼非常煩瑣。

          很難想象,如果在一個(gè)頁面里需要頻繁地更替字體的顏色大小,最終生成的HTML代碼的長度一定臃腫不堪。

          說實(shí)話,CSS就是為了簡化這樣的工作誕生的,當(dāng)然其功能決非這么簡單。

          CSS是通過對頁面結(jié)構(gòu)的風(fēng)格控制的思想,控制整個(gè)頁面的風(fēng)格的。

          式樣單放在頁面中,通過瀏覽器的解釋執(zhí)行,是完全的文本,任何懂得HTML的人都可以掌握,非常的容易。甚至對一些非常老的瀏覽器,也不會(huì)產(chǎn)生頁面混亂的現(xiàn)象。

          CSS的一大優(yōu)點(diǎn)是它的圖片傳輸速度比較完全的HTML網(wǎng)頁要快一點(diǎn)。

          CSS:
          Chinese,Surface-to-Surface
          中國面對面導(dǎo)彈 簡稱CSS-N
          CSS具有兩面性。就像它在格式化文本、導(dǎo)航欄、圖片以及其他小小的網(wǎng)頁方面很棒一樣,當(dāng)你準(zhǔn)備好布局完整的網(wǎng)頁時(shí),它真正可怕的一面也展現(xiàn)出來了。
          CSS布局有兩種風(fēng)格——絕對定位和浮動(dòng)。絕對定位讓你把一個(gè)元素以像素級的精確性定位在網(wǎng)頁的任何位置——或者理論上是這樣。這種整體控制令人興奮,就如你將在下一章中所看到的,但是實(shí)際上很難實(shí)現(xiàn)。這就是大量網(wǎng)頁使用基于浮動(dòng)的布局的原因,也是本章的主題。
          CSS布局如何進(jìn)行
          How CSS Layout Works
          如在第1章中討論過的,HTML的局限性迫使設(shè)計(jì)師們?nèi)ラ_發(fā)更聰明的方式來使他們的網(wǎng)頁更美觀。過去最常用的工具是[table]標(biāo)簽,它本是用來創(chuàng)建電子數(shù)據(jù)表——比如由數(shù)據(jù)行和列組成的信息顯示表。但是設(shè)計(jì)師們卻用HTML的表格來創(chuàng)建一種用來組織網(wǎng)頁內(nèi)容的腳手架(見圖11-1)。可是由于[table]標(biāo)簽本來不是要用于布局的,因此設(shè)計(jì)師們不得不經(jīng)常以各種不尋常的方式來使用這個(gè)標(biāo)簽——比如把一個(gè)表格放在另一個(gè)表格的單元里面——僅僅為了得到他們想要的效果。這種方法的工作量很大,增加了大量額外的HTML代碼,并使得后面要修改設(shè)計(jì)很難。但是在CSS出現(xiàn)之前,那就是網(wǎng)頁設(shè)計(jì)師們所擁有的一切辦法。
          如果你已經(jīng)習(xí)慣于使用[table]標(biāo)簽,那么當(dāng)你開始使用CSS進(jìn)行布局時(shí),必須發(fā)展一種新的思維。首先,忘掉行和列(運(yùn)用表格時(shí)的一種重要的觀念)。沒有
          列跨度、行跨度和格子狀的表格結(jié)構(gòu)在CSS中是找不到的。然而,你可以把一個(gè)標(biāo)簽當(dāng)成一個(gè)表格單元。有了表格單元,標(biāo)簽就是把你要的內(nèi)容定位在網(wǎng)頁區(qū)域的一個(gè)邏輯位置。此外,如你所見,CSS設(shè)計(jì)經(jīng)常把一個(gè)div嵌套在另一個(gè)div里面,就像你把表格嵌套在表格里面來獲得特定的效果一樣——但是,幸運(yùn)的是,CSS方法只用少得多的HTML代碼。
          強(qiáng)大的標(biāo)簽
          The Mighty   Tag
          無論使用表格還是CSS,網(wǎng)頁布局都是把大塊的內(nèi)容放進(jìn)網(wǎng)頁的不同區(qū)域里面。有了CSS,最常用來組織內(nèi)容的元素就是標(biāo)簽。如第18頁所述,標(biāo)簽是沒有固有格式化屬性的一個(gè)HTML元素(除了瀏覽器把這個(gè)標(biāo)簽當(dāng)成前后有換行的塊之外);反之,它被用來標(biāo)識(shí)元素的一個(gè)邏輯組合或者網(wǎng)頁中的一個(gè)分區(qū)。
          你將代表性地把一大塊屬于一起的HTML包圍在一個(gè)里面。圖11-1中包含logo和導(dǎo)航欄的元素占據(jù)了網(wǎng)頁頂部,因此用一個(gè)標(biāo)簽把它們包圍起來很有意義。至少,你要給網(wǎng)頁的所有主要區(qū)域包含標(biāo)簽,例如橫幅、主要內(nèi)容區(qū)域、工具條、頁腳,等等。但是它也可能把一個(gè)或者更多的div包在一個(gè)里面。一種最常用的方法就是把<body>標(biāo)簽里面的HTML包在一個(gè)里面。然后可以通過把CSS應(yīng)用到包裝,設(shè)置基礎(chǔ)的頁面屬性。你可以給網(wǎng)頁內(nèi)容設(shè)定一個(gè)整體的寬度,設(shè)置左邊距和右邊距,或者把所有網(wǎng)頁內(nèi)容在屏幕的中間居中。(在第313頁的教程中,你有機(jī)會(huì)用到一個(gè)包裝。)
          一旦已經(jīng)把標(biāo)簽放在了適當(dāng)?shù)奈恢蒙?,再給每個(gè)標(biāo)簽添加一個(gè)類或者ID,變成你分別對每個(gè)定義樣式的句柄。對于只出現(xiàn)一次和形成網(wǎng)頁的基本構(gòu)建塊的網(wǎng)頁部位,設(shè)計(jì)師們通常使用一個(gè)ID。一個(gè)網(wǎng)頁橫幅區(qū)域的標(biāo)
          簽看起來可能像這樣:。你可以對一個(gè)ID每頁只使用一次,因此當(dāng)有一個(gè)多次顯示的元素時(shí),就用一個(gè)類代替。如果你有幾個(gè)定位照片和照片說明的div時(shí),可以創(chuàng)建一個(gè)樣式像這樣:。
          有了類似這些的樣式,就可以定位各種各樣的網(wǎng)頁元素了。利用CSS的float屬性,你可以定位不同的內(nèi)容塊給一張網(wǎng)頁的左邊或者右邊(或者一個(gè)包含塊比如另一個(gè)的左邊或者右邊)。
          至理名言
          更多并非更好
          雖然div對于CSS布局很重要,但也別對你的網(wǎng)頁濫用div。一個(gè)常見的陷阱是相信你必須把一張網(wǎng)頁中的一切都包圍在一個(gè)標(biāo)簽里面。假設(shè)你的主導(dǎo)航欄是一個(gè)鏈接的無序列表
          (就像第218頁中所述)。由于它是一個(gè)重要的元素,你可能會(huì)試探用一個(gè)來把它圍起來:<ul>...</ul>
          。但是當(dāng)<ul>標(biāo)簽唾手可得時(shí),就沒有必要去添加一個(gè)了。只要<ul>包含主要的導(dǎo)航欄鏈接,就只需添加ID樣式給這個(gè)標(biāo)簽:<ul id= "mainNav">。多余的只是一些沒有必要的代碼。

          posted on 2008-06-30 11:22 sunny spring 閱讀(358) 評論(0)  編輯  收藏 所屬分類: javaee

          主站蜘蛛池模板: 安阳市| 永泰县| 武邑县| 安龙县| 西充县| 容城县| 河西区| 孟州市| 遂宁市| 博湖县| 长阳| 乌拉特前旗| 宜兰县| 五大连池市| 碌曲县| 应用必备| 托里县| 华阴市| 武鸣县| 京山县| 明溪县| 闸北区| 永登县| 临邑县| 七台河市| 南宫市| 青龙| 淮北市| 塘沽区| 公安县| 泾源县| 孙吴县| 长沙县| 舒兰市| 潢川县| 彝良县| 武山县| 大丰市| 滨州市| 钟祥市| 永新县|