西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識 → 18個CSS樣式的優(yōu)化與技巧

18個CSS樣式的優(yōu)化與技巧

相關軟件相關文章發(fā)表評論 來源:西西整理時間:2011/10/25 13:34:50字體大。A-A+

作者:西西點擊:126次評論:0次標簽: CSS

  • 類型:電子資料大。3.9M語言:中文 評分:10.0
  • 標簽:
立即下載
2 頁 使用子選擇器

九.使用子選擇器 (descendant selectors)

CSS初學者不知道使用子選擇器是影響他們效率的原因之一。子選擇器可以幫助你節(jié)約大量的class定義。我們來看下面這段代碼:

〈div id=subnav〉

〈ul〉

〈li class=subnavitem〉〈a href=# class=subnavitem〉Item 1〈/a〉〈/li〉

〈li class=subnavitemselected〉 〈a href=# class=subnavitemselected〉 Item 1〈/a〉 〈/li〉

〈li class=subnavitem〉〈a href=# class=subnavitem〉 Item 1〈/a〉 〈/li〉

〈/ul〉

〈/div〉

這段代碼的CSS定義是:

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 // }

你可以用下面的方法替代上面的代碼

〈ul id=subnav〉

〈li〉 〈a href=#〉 Item 1〈/a〉 〈/li〉

〈li class=sel〉 〈a href=#〉 Item 1〈/a〉 〈/li〉

〈li〉 〈a href=#〉 Item 1〈/a〉 〈/li〉

〈/ul〉

樣式定義是:

#subnav { // Some styling // }

#subnav li { // Some styling // }

#subnav a { // Some styling // }

#subnav .sel { // Some styling // }

#subnav .sel a { // Some styling // }

用子選擇器可以使你的代碼和CSS更加簡潔、更加容易閱讀。

-------------------------------------------------

十、不需要給背景圖片路徑加引號

為了節(jié)省字節(jié),我建議不要給背景圖片路徑加引號,因為引號不 是必須的。例如:

background:url(images/***.gif) #333;

可以寫為

background:url(images/***.gif) #333;

如果你加了引號,反而會引起一些瀏覽器的錯誤。

十一、組選擇器(Group selectors)

當一些元素類型、class或者id都有共同的一些屬性,你就可以使用組選擇器來避免多次的重復定義。這可以節(jié)省不少字節(jié)。

例如:定義所有標題的字體、顏色和margin,你可以這樣 寫:

h1,h2,h3,h4,h5,h6 {

font-family:Lucida Grande,Lucida,Arial,Helvetica,sans-serif;

color:#333;

margin:1em 0;

}

如果在使用時,有個別元素需要定義獨立樣式,你可以再加上新的定義,可以覆蓋老的定義,例如:

h1 { font-size:2em; }

h2 { font-size:1.6em; }

-------------------------------------------------

十二、用正確的順序指定鏈接的樣式

當你用CSS來定義鏈接的多個狀態(tài)樣式時,要注意它們書寫的順序,正確的順序是::link :visited :hover :active。抽取第一個字母是LVHA,你可以記憶成LoVe HAte(喜歡討厭)。為什么這么定義,可以參考Eric Meyer的《Link Specificity》。

如果你的用戶需要用鍵盤來控制,需要知道當前鏈接的焦點,你還可以定義:focus屬性。:focus屬性的效果也取決與你書寫的位置,如果你希望聚焦元素顯示:hover效果,你就把:focus寫在:hover前面;如果你希望聚焦效果替代:hover效果,你就 把:focus放在:hover后面。

-------------------------------------------------

十三.清除浮動

一個非常常見的CSS問題,定位使用浮動的時候,下面的層被浮動的層所覆蓋,或者層里嵌套的子層超出了外層的范圍。

通常的解決辦法是在浮動層后面添加一個額外元素,例如一個 div或者一個br,并且定義它的樣式為clear: both。這個辦法有一點牽強,幸運的是還有一個好辦法可以解決,參看這篇文章《How To Clear Floats Without Structural Markup》(注:本站將盡快翻譯此文)。

上面2種方法可以很好解決浮動超出的問題,但是如果當你真的需要對層或者層里的對象進行clear的時候怎么辦?一種簡單的方法就是用overflow屬性,這個方法最初的發(fā)表在《Simple Clearing of Floats》,又在《Clearance》和《Super simple clearing floats》中被廣泛討論。

上面那一種clear方法更適合你,要看具體的情況,這里不再展開論述。另外關于float的應用,一些優(yōu)秀的文章已經說得很清楚,推薦你閱讀:《Floatutorial》、《Containing Floats》和《Float Layouts》

-------------------------------------------------

十四、橫向居中 (centering)

這是一個簡單的技巧,但是值得再說一遍,因為我看見太多的新手問題都是問這個:CSS如何橫向居中?你需要定義元素的寬,并且定義橫向的margin,如果你的布局包含在一個層(容器)中,就象這樣:

undefined

你可以這樣定義使它橫向居中:

#wrap {

width:760px; // 修改為你的層的寬度 //

margin:0 auto;

}

但是IE5/Win不能正確顯示這個定義,我們采用一個非常有用的技巧來解決:用text-align屬性。就象這樣:

body {

text-align:center;

}

#wrap {

width:760px; // 修改為你的層的寬度 //

margin:0 auto;

text-align:left;

}

第一個body的text-align:center; 規(guī)則定義IE5/Win中body的所有元素居中(其他瀏覽器只是將文字居中) ,第二個text-align:left;是將#warp中的文字居左。

-------------------------------------------------

十五、導入 (Import)和隱藏CSS

因為老版本瀏覽器不支持CSS,一個通常的做法是使用 @import技巧來把CSS隱藏起來。例如:

@import url(main.css);

然而,這個方法對IE4不起作用,這讓我很是頭疼了一陣子。后來我用這樣的寫法:

@import main.css;

這樣就可以在IE4中也隱藏CSS了,呵呵,還節(jié)省了5個字節(jié)呢。想了解@import語法的詳細說明,可以看這里《centricle’s css filter chart》

-------------------------------------------------


    相關評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經過審核才能顯示)