css的十八般技巧_第1頁(yè)
css的十八般技巧_第2頁(yè)
css的十八般技巧_第3頁(yè)
css的十八般技巧_第4頁(yè)
css的十八般技巧_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.:.;一.運(yùn)用css縮寫(xiě) 運(yùn)用縮寫(xiě)可以協(xié)助 減少他CSS文件的大小,更加容易閱讀。css縮寫(xiě)的主要規(guī)那么請(qǐng)參看,這里就不展開(kāi)描畫(huà)。 二.明確定義單位,除非值為0 忘記定義尺寸的單位是CSS新手普遍的錯(cuò)誤。在HTML中他可以只寫(xiě)width=100,但是在CSS中,他必需給一個(gè)準(zhǔn)確的單位,比如:width:100px width:100em。只需兩個(gè)例外情況可以不定義單位:行高和0值。除此以外,其他值都必需緊跟單位,留意,不要在數(shù)值和單位之間加空格。 三.區(qū)分大小寫(xiě) 當(dāng)在XHTML中運(yùn)用CSS,CSS里定義的元素稱(chēng)號(hào)是區(qū)分大小寫(xiě)的。為了防止這種錯(cuò)誤,我建議一切的定義稱(chēng)號(hào)都采用小寫(xiě)。 class和

2、id的值在HTML和XHTML中也是區(qū)分大小寫(xiě)的,假設(shè)他一定要大小寫(xiě)混合寫(xiě),請(qǐng)仔細(xì)確認(rèn)他在CSS的定義和XHTML里的標(biāo)簽是一致的。 四.取消class和id前的元素限定 當(dāng)他寫(xiě)給一個(gè)元素定義class或者id,他可以省略前面的元素限定,由于ID在一個(gè)頁(yè)面里是獨(dú)一的,而clas s可以在頁(yè)面中多次運(yùn)用。他限定某個(gè)元素毫無(wú)意義。例如: div#content /* declarations */ fieldset.details /* declarations */ 可以寫(xiě)成 #content /* declarations */ .details /* declarations */ 這樣可以

3、節(jié)省一些字節(jié)。 五.默許值 通常padding的默許值為0,background-color的默許值是transparent。但是在不同的閱讀器默許值能夠不同。假設(shè)怕有沖突,可以在款式表一開(kāi)場(chǎng)就先定義一切元素的margin和padding值都為0,象這樣: * margin:0; padding:0; 六.不需求反復(fù)定義可承繼的值 CSS中,子元素自動(dòng)承繼父元素的屬性值,象顏色、字體等,曾經(jīng)在父元素中定義過(guò)的,在子元素中可以直接承繼,不需求反復(fù)定義。但是要留意,閱讀器能夠用一些默許值覆蓋他的定義。 七.最近優(yōu)先原那么 假設(shè)對(duì)同一個(gè)元素的定義有多種,以最接近(最小一級(jí))的定義為最優(yōu)先,例如有這么

4、一段代碼 Update: Lorem ipsum dolor set 在CSS文件中,他曾經(jīng)定義了元素p,又定義了一個(gè)classupdate p 博客園 Jesse Zhao 整理 jessezhaoblogs MSN/Mail:prolibertinegmail 第 27 頁(yè) margin:1em 0; font-size:1em; color:#333; .update font-weight:bold; color:#600; 這兩個(gè)定義中,class=update將被運(yùn)用,由于class比p更近。他可以查閱W3C的 了解更多。 八.多重class定義 一個(gè)標(biāo)簽可以同時(shí)定義多個(gè)class

5、。例如:我們先定義兩個(gè)款式,第一個(gè)款式背景為#666;第二個(gè)款式有10 px的邊框。 .onewidth:200px;background:#666; .twoborder:10px solid #F00; 在頁(yè)面代碼中,我們可以這樣調(diào)用 這樣最終的顯示效果是這個(gè)div既有#666的背景,也有10px的邊框。是的,這樣做是可以的,他可以嘗試一下。 九.運(yùn)用子選擇器(descendant selectors) CSS初學(xué)者不知道運(yùn)用子選擇器是影響他們效率的緣由之一。子選擇器可以協(xié)助 他節(jié)約大量的class定義。我們來(lái)看下面這段代碼: Item 1 Item 1 Item 1 這段代碼的CSS定義

6、是: div#subnav ul /* Some styling */ div#subnav ul li.subnavitem /* Some styling */ div#subnav ul li.subnavitem a.subnavitem /* Some styling */ div#subnav ul li.subnavitemselected /* Some styling */ div#subnav ul li.subnavitemselected a.subnavitemselected /* Some styling */ 他可以用下面的方法替代上面的代碼 Item 1 It

7、em 1 Item 1 款式定義是: #subnav /* Some styling */ #subnav li /* Some styling */ 博客園 Jesse Zhao 整理 jessezhaoblogs MSN/Mail:prolibertinegmail 第 28 頁(yè) #subnav a /* Some styling */ #subnav .sel /* Some styling */ #subnav .sel a /* Some styling */ 用子選擇器可以使他的代碼和CSS更加簡(jiǎn)約、更加容易閱讀。 十.不需求給背景圖片途徑加引號(hào) 為了節(jié)省字節(jié),我建議不要給背景圖片

8、途徑加引號(hào),由于引號(hào)不是必需的。例如: background:url(images/*.gif) #333; 可以寫(xiě)為 background:url(images/*.gif) #333; 假設(shè)他加了引號(hào),反而會(huì)引起一些閱讀器的錯(cuò)誤。 十一.組選擇器(Group selectors) 當(dāng)一些元素類(lèi)型、class或者id都有共同的一些屬性,他就可以運(yùn)用組選擇器來(lái)防止多次的反復(fù)定義。這可以節(jié)省不少字節(jié)。 例如:定義一切標(biāo)題的字體、顏色和margin,他可以這樣寫(xiě): h1,h2,h3,h4,h5,h6 font-family:Lucida Grande,Lucida,Arial,Helvetica,

9、sans-serif; color:#333; margin:1em 0; 假設(shè)在運(yùn)用時(shí),有個(gè)別元素需求定義獨(dú)立款式,他可以再加上新的定義,可以覆蓋老的定義,例如: h1 font-size:2em; h2 font-size:1.6em; 十二.用正確的順序指定鏈接的款式 當(dāng)他用CSS來(lái)定義鏈接的多個(gè)形狀款式時(shí),要留意它們書(shū)寫(xiě)的順序,正確的順序是::link :visited :hover :active。抽取第一個(gè)字母是LVHA,他可以記憶成LoVe HAte(喜歡厭惡)。為什么這么定義,可以參考Eric Meyer的。 假設(shè)他的用戶(hù)需求用鍵盤(pán)來(lái)控制,需求知道當(dāng)前鏈接的焦點(diǎn),他還可以定義:

10、focus屬性。:focus屬性的效果也取決與他書(shū)寫(xiě)的位置,假設(shè)他希望聚焦元素顯示:hover效果,他就把:focus寫(xiě)在:hover前面;假設(shè)他希望聚焦效果替代:hover效果,他就把:focus放在:hover后面。 十三.去除浮動(dòng) 一個(gè)非經(jīng)常見(jiàn)的CSS問(wèn)題,定位運(yùn)用浮動(dòng)的時(shí)候,下面的層被浮動(dòng)的層所覆蓋,或者層里嵌套的子層超出了外層的范圍。 通常的處理方法是在浮動(dòng)層后面添加一個(gè)額外元素,例如一個(gè)div或者一個(gè)br,并且定義它的款式為clear: both。這個(gè)方法有一點(diǎn)牽強(qiáng),僥幸的是還有一個(gè)好方法可以處理,參看這篇文章(注:本站將盡快翻譯此文)。 上面2種方法可以很益處理浮動(dòng)超出的問(wèn)題,但

11、是假設(shè)當(dāng)他真的需求對(duì)層或者層里的對(duì)象進(jìn)展clear的時(shí)候怎樣辦?一種簡(jiǎn)單的方法就是用overflow屬性,這個(gè)方法最初的發(fā)表在,又在和中被廣泛討論。 上面那一種clear方法更適宜他,要看詳細(xì)的情況,這里不再展開(kāi)論述。另外關(guān)于float的運(yùn)用,一些優(yōu)秀的文章曾經(jīng)說(shuō)得很清楚,引薦他閱讀:、和 博客園 Jesse Zhao 整理 jessezhaoblogs MSN/Mail:prolibertinegmail 第 29 頁(yè) 十四.橫向居中(centering) 這是一個(gè)簡(jiǎn)單的技巧,但是值得再說(shuō)一遍,由于我看見(jiàn)太多的新手問(wèn)題都是問(wèn)這個(gè):CSS如何橫向居中?他需求定義元素的寬,并且定義橫向的marg

12、in,假設(shè)他的規(guī)劃包含在一個(gè)層(容器)中,就象這樣: 他可以這樣定義使它橫向居中: #wrap width:760px; /* 修正為他的層的寬度 */ margin:0 auto; 但是IE5/Win不能正確顯示這個(gè)定義,我們采用一個(gè)非常有用的技巧來(lái)處理:用text-align屬性。就象這樣: body text-align:center; #wrap width:760px; /* 修正為他的層的寬度 */ margin:0 auto; text-align:left; 第一個(gè)body的text-align:center; 規(guī)那么定義IE5/Win中body的一切元素居中(其他閱讀器只是將

13、文字居中) ,第二個(gè)text-align:left;是將#warp中的文字居左。 十五.導(dǎo)入(Import)和隱藏CSS 由于老版本閱讀器不支持CSS,一個(gè)通常的做法是運(yùn)用import技巧來(lái)把CSS隱藏起來(lái)。例如: import url(main.css); 然而,這個(gè)方法對(duì)IE4不起作用,這讓我很是頭疼了一陣子。后來(lái)我用這樣的寫(xiě)法: import main.css; 這樣就可以在IE4中也隱藏CSS了,呵呵,還節(jié)省了5個(gè)字節(jié)呢。想了解import語(yǔ)法的詳細(xì)闡明,可以看這里 十六.針對(duì)IE的優(yōu)化 有些時(shí)候,他需求對(duì)IE閱讀器的bug定義一些特別的規(guī)那么,這里有太多的CSS技巧(hacks),我

14、只運(yùn)用其中的兩種方法,不論微軟在即將發(fā)布的IE7 beta版里能否更好的支持CSS,這兩種方法都是最平安的。 1.注釋的方法 o (a)在IE中隱藏一個(gè)CSS定義,他可以運(yùn)用子選擇器(child selector): htmlbody p /* 定義內(nèi)容 */ o (b)下面這個(gè)寫(xiě)法只需IE閱讀器可以了解(對(duì)其他閱讀器都隱藏) * html p /* declarations */ o (c)還有些時(shí)候,他希望IE/Win有效而IE/Mac隱藏,他可以運(yùn)用反斜線(xiàn)技巧: /* */ * html p 博客園 Jesse Zhao 整理 jessezhaoblogs MSN/Mail:prolib

15、ertinegmail 第 30 頁(yè) declarations /* */ 2.條件注釋(conditional comments)的方法 另外一種方法,我以為比CSS Hacks更加經(jīng)得起考驗(yàn)就是采用微軟的私有屬性條件注釋(conditional comments)。用這個(gè)方法他可以給IE單獨(dú)定義一些款式,而不影響主款式表的定義。就象這樣: 十七.調(diào)試技巧:層有多大? 當(dāng)調(diào)試CSS發(fā)生錯(cuò)誤,他就要象排版工人,逐行分析CSS代碼。我通常在出問(wèn)題的層上定義一個(gè)背景顏色,這樣就能很明顯看到層占據(jù)多大空間。有些人建議用border,普通情況也是可以的,但問(wèn)題是,有時(shí)候border 會(huì)添加元素的尺寸,border-top和boeder-bottom會(huì)破壞縱向margin的值,所以運(yùn)用background更加平安些。 另外一個(gè)經(jīng)常出問(wèn)題的屬性是outline。outline看起來(lái)象boeder,但不會(huì)影響元素的尺寸或者位置。只需少數(shù)閱讀器支持outline屬性,我所知道的只需Safari、OmniWeb、和Opera。 十八.CSS代碼書(shū)寫(xiě)款式 在寫(xiě)CSS代碼的時(shí)候,對(duì)于縮進(jìn)、斷行、空格,每個(gè)人有每個(gè)人

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論