新聞資訊
記錄首創點滴進步 見(jiàn)證遠(yuǎn)行(xíng)
我們一(yī)直緊跟時(shí)代前沿,聚焦ε≈行(xíng)業(yè)實時(shí)動态,發布公司最‌÷σ≥新資訊,歡迎您的(de)關注
您目前的(de)位置:網站(zhàn)首頁 > 新聞資訊 > 網站(zhàn)常識 >

6.14日(rì)音(yīn)訊,書(shū)寫規範高(gāo)效的• ✘(de)CSS

發布日(rì)期:2013-06-14文(wén)章(zhāng)來(lái)源:首創網絡浏覽次數(shù):742次
    6.14日(rì)音(yīn)訊,書(shū)寫規範高(gāo)效的(↓γ♥de)CSS。雖然大(dà)家(jiā)每天都(•✔dōu)在書(shū)寫css,為(wèi)什(shén)麽有(yǒu)的(&ε§δde)寫的(de)很(hěn)輕松有(yǒu)的(de)則很(hěn↓<)費(fèi)時(shí)間(jiān),全部書(shū)寫好₩ δ☆(hǎo)了(le),還(hái)要(yào)在調兼容、錯(cπ​☆uò)位等等問(wèn)題呢(ne),其∏∑實這(zhè)就(jiù)是(shì)我←★ ♦們今天要(yào)說(shuō)的(de)是(sh"ε↕•ì)否語法書(shū)寫正确、代碼是(shì)否冗餘、順π↕ λ序是(shì)否......
    本文(wén)關鍵字:6.14日(rì),音(yīn)₹÷訊,書(shū)寫,規範,高(gāo)效,的(de),CSS,6.14日(r₽∏≠☆ì),音(yīn)訊,
   6.14日(rì)音(yīn)訊,書(shū)寫規範高(g₽ ®λāo)效的(de)CSS。雖然大(dà)家(±>jiā)每天都(dōu)在書(shū)寫css,為¥±(wèi)什(shén)麽有(yǒu)的(®✘♦∑de)寫的(de)很(hěn)輕松有(yǒu)的(de)則很(hěn  )費(fèi)時(shí)間(jiān),全部書(s≈α®hū)寫好(hǎo)了(le),還(hái)要(yào)在調兼容、錯(cεδ®uò)位等等問(wèn)題呢(ne),其實這(zhè)就(jiù)是(sδ hì)我們今天要(yào)說(shuō)的(de)是(shì)否∑♥語法書(shū)寫正确、代碼是(shì)否冗餘、順序是© <<(shì)否正确等,隻有(yǒu)把這(zhè)些(xiē)都(dōu)‌α了(le)解的(de)透徹了(le),才能(néng)做( ↕₽zuò)好(hǎo)css這(zhè)項工(gō×‌₽™ng)作(zuò),才能(néng)更加高(gāo)效的(de)≤​ 完成我們的(de)工(gōng)作(zuò),今天邯鄲網站(zhàn)建設首創網絡小(xiǎo)編來(lái)給大(dà)家(jiā)說(shuō)一( ♥&βyī)下(xià)CSS的(de)一(yī)些(xiē)經驗,告訴大(dà©™→)家(jiā)如(rú)何才能(néng)寫出标準的(de>≤α‍)高(gāo)效的(de)樣式表來(lái)。
 
  1.用(yòng)哪個(gè)寫哪個(≥¥•gè)标簽,不(bù)能(néng)全部默認屬性
  不(bù)同浏覽器(qì)元素的(de)γ®∑♠默認屬性有(yǒu)所不(bù)同,使用(yòng)Reset可(kěπ'₽)重置浏覽器(qì)元素的(de)一(yī)些(xiē)默¥≤σ認屬性,以達到(dào)浏覽器(qì)的(de)兼容。但(dàn)需要(yàδσo)注意的(de)是(shì),請(qǐng)不(bù)要(yào)使用'®☆(yòng)全局Reset:
  *{margin:0;padding:0;}
  這(zhè)不(bù)僅僅因為(wèi)它是(s××≤hì)緩慢(màn)和(hé)低(dī)效Ω✔率的(de)方法,而且還(hái)會(huì≥ σ)導緻一(yī)些(xiē)不(bù)必♥©要(yào)的(de)元素也(yě)重置了(le)'¥€↕外(wài)邊距和(hé)內(nèi)邊距。在此建議(y¥✘∏ì)參考YUIReset和(hé)EricMeyer的(de)做(zu•€'ò)法。
  如(rú)div,img,a,p{↑✘₩margin:0;padding:0}
  /**設置默認字體(tǐ)**/
  body,button,input,select,text≤∏∞&area{
  font:12px/1.5'宋體(tǐ)<↔9;,tahoma,Srial,helvetica,san&®δ>s-serif;}
  h1,h2,h3,h4,h5,h6{font-size:100​®≤%;}
  em{font-style:normal;₩&}
  /**重置列表元素**/
  ul,ol{list-style:non≥∏β↔e;}
  /**重置超鏈接元素**/
  a{text-decoration:'"↓none;color:#333;}
  a:hover{text-decoration:und‌₽✘←erline;color:#F40;}
  /**重置圖片元素**/
  img{border:0px;}
  /**重置表格元素**/
  table{border-collapse§‌₹:collapse;border-spacing:0;}πσδ
  2.良好(hǎo)的(de)命名習(xí)慣
  無疑亂七八糟或者無語義命名的(de)代碼,誰看(kàn)了(le ‌×∏)都(dōu)會(huì)抓狂。就(jiù)像這¥‌ ×(zhè)樣的(de)代碼:
  .aaabb{margin:2px;color:red;}
  我想即使是(shì)初學者,也(yě)不(bù♦®©δ)至于會(huì)在實際項目中如(rú)此命名一↓£(yī)個(gè)class,但(dàn)有(✔×→yǒu)沒有(yǒu)想過這(zhè)樣的(de)代碼同樣是(shì) ✘很(hěn)有(yǒu)問(wèn)題的(de):
  <h1>Mynameis<spanclass®™×<="redblod">hds€∏cwl</span>< ←/h1>
  問(wèn)題在于如(rú)果你(nǐ)需要(yào)把所↕γ&有(yǒu)原本紅(hóng)色的(de)字體(tǐ)改成藍(l‌σ©án)色,那(nà)修改後就(jiù)樣式就(jiù)會(huì)變成:
  .red{color:bule;}
  這(zhè)樣的(de)命名就(jiù)會(huì)很(hěn)←<讓人(rén)費(fèi)解,同樣的(de)命名為(wèi).leftBar的§♥±(de)側邊欄如(rú)果需要(yào)修改成右側邊欄也(yě)會↔"£®(huì)很(hěn)麻煩。所以,請(qǐng)不(bù)要(yào)使用€™(yòng)元素的(de)特性(顔色,位置,大(d₽♥à)小(xiǎo)等)來(lái)命名一(y≈✘¶ī)個(gè)class或id,您可(kě)‍<≤以選擇意義的(de)命名如(rú):#navigatΩγ∑ion{...},.sidebar{...'↑←},.postwrap{...}
  這(zhè)樣,無論你(nǐ)如(rú)何修改定義這(zhè)些↔↑(xiē)class或id的(de)樣式,都(dōu)不(b ≈♥↑ù)影(yǐng)響它跟HTML元素間(jiān)的(de‍×±)聯系。
  另外(wài)還(hái)有(yǒu)一(yī)種情況,一(✔λ₽σyī)些(xiē)固定的(de)樣式,定義後δ ®≈就(jiù)不(bù)會(huì)修改的(de)了 ↑π(le),那(nà)你(nǐ)命名時(sh∑σ í)就(jiù)不(bù)用(yòng)擔憂剛剛說(shuō)的₩λ"(de)那(nà)種情況,如(rú)
  .alignleft{float:left;margin-right∏‍:20px;}
  .alignright{float:right;text'εσ≤-align:right;margin-left:20px;}
  .clear{clear:both;text-indent:-999✘​↓β9px;}
  那(nà)麽對(duì)于這(zhè)樣一(yīσ∑ )個(gè)段落
  <pclass="alignleft"&g±£≥t;我是(shì)一(yī)個(gè)段落!</ε​★p>
  如(rú)果需要(yào)把這(zhè)個(gè)段落由原先₹↔λ™的(de)左對(duì)齊修改為(wèi)右對(duì)齊,那(nà)麽隻≥÷α★需要(yào)修改它的(de)className就(j↕↕∑iù)為(wèi)alignright就(jiù)可(kě)以了(l<↔¥e)。
  3.代碼縮寫
  CSS代碼縮寫可(kě)以提高(gāo)你(nǐ)寫代碼的(de)速度β ±,精簡你(nǐ)的(de)代碼量。在CSS裡(lǐ)面有(yǒu)不(bù←&)少(shǎo)可(kě)以縮寫的(de)屬性,包括mπ¥∞argin,padding,border,font,backg♣∏round和(hé)顔色值等,如(rú)果您學會(huì)了(le¶δ')代碼縮寫,原本這(zhè)樣的(de)代碼:
  li{
  font-family:Arial,Helvetica,san"σs-serif;
  font-size:1.2em;
  line-height:1.4em;
  padding-top:5px;
  padding-bottom:10p₩₽→∞x;
  padding-left:5px;
  }
  就(jiù)可(kě)以縮寫為(wèi):
  li{
  font:1.2em/1.4emArial,Helvetica,€<§§sans-serif;
  padding:5px010px5p←™ x;
  }
  4.利用(yòng)CSS繼承
  如(rú)果頁面中父元素的(de)多(duō)個(gè)子(z©λ™≥ǐ)元素使用(yòng)相(xiàng)同的(de σ)樣式,那(nà)最好(hǎo)把他(tā)們¥<"‌相(xiàng)同的(de)樣式定義在其父© ♣£元素上(shàng),讓它們繼承這(zh↕πγ↓è)些(xiē)CSS樣式。這(zhè)≤'↔ 樣你(nǐ)可(kě)以很(hěn)好(hǎo)的(de)維護你(nǐ) $δ÷的(de)代碼,并且還(hái)可(kě)以減少(shǎo)© ♥​代碼量。那(nà)麽本來(lái)這(zhè)樣的(de)代碼:
  #containerli{font-$"¥family:Georgia,serif;}
  #containerp{font-family:Geor£σ gia,serif;}
  #containerh1{font-famil→§​‌y:Georgia,serif;}
  就(jiù)可(kě)以簡寫成:
  #container{font-fam​'ily:Georgia,serif;}
  5.使用(yòng)多(duō)重選↔​‍擇器(qì)
  你(nǐ)可(kě)以合并多(duō)個(gè)CSS選擇器(qì)為©↕"(wèi)一(yī)個(gè),如(rú)果他(tā)們有(yǒu)•Ω™π共同的(de)樣式的(de)話(huà)。這(zhè)樣做< ±↔(zuò)不(bù)但(dàn)代碼簡潔且可(kě)為(wèi)你(nǐ)節σ☆✘省時(shí)間(jiān)和(hé)空φ¥ (kōng)間(jiān)。如(rú):
  h1{font-family:Arial,H✔•'elvetica,sans-serif;↔ font-weight:normal;}
  h2{font-family:Arial,Helveti£® ca,sans-serif;font-weδ‌ight:normal;}
  h3{font-family:Arial,Helvet♣εαica,sans-serif;font-weight:no>₹≠φrmal;}
  可(kě)以合并為(wèi):
  h1,h2,h3{font-family:Arial,H​ ↑₹elvetica,sans-serif;font-weight:normal;≥ ∏€}
  6.适當的(de)代碼注釋
  代碼注釋可(kě)以讓别人(rén)更容易讀(dú)懂(dǒng)♠‌©你(nǐ)的(de)代碼,且合理(lǐ)π←的(de)組織代碼注釋,可(kě)使得(de)結構更加清晰。你(≠→nǐ)可(kě)以選擇做(zuò)的(de)‌δ樣式表的(de)開(kāi)始添加目錄:
  /*--------------------------------λ ♥Ω----
  1.Reset
  2.Header
  3.Content
  4.SideBar
  5.Footer
  ------------------------∑&©-----------*/
  如(rú)此你(nǐ)代碼的(de)結構就(jiùδ↔)一(yī)目了(le)然,你(nǐ)可(kě)以容$→§§易的(de)查找和(hé)修改代碼。
  而對(duì)于代碼的(de)主內(nèi)容,也(yě)應适當的 ±$(de)加以劃分(fēn),甚至在有(yǒu)必要(yào↔←)的(de)地(dì)方在對(duì)代碼加以注釋說(shuō)明←β(míng),這(zhè)樣也(yě)有(yǒu)利于團隊開(kāσ§​↔i)發:
  /***Header***/
  #header{height:14Ω∑≤•5px;position:relative;}
  #headerh1{width:3¥β≥→24px;margin:45px0020px;float:lγ<"♣eft;height:72px;}
  /***Content***/
  #content{background:#fff;w¥∏<♥idth:650px;float:left;min-hei•£≠ ght:600px;overflow:hidβ₩Ωπden;}
  #contenth1{color:#F00}/*設置字體β€₹(tǐ)顔色*/
  #content.posts{ove®©rflow:hidden;}
  #content.recent{margi≥‍∞®n-bottom:20px;border-bottom:1p≠ ¶'xsolid#f3f3f3;position:relative;ov ‌≠βerflow:hidden;}
  /***Footer***/
  #footer{clear:both;p↓σadding:50px5px0;overflow:hidden;}₩♥≤♠
  #footerh4{color:#b99d7f;font-famφ"§ily:Arial,Helvetica,sans-serif;fontΩ →✘-size:1.1em;}
  7.給你(nǐ)的(de)CSS代碼排序
  如(rú)果代碼中的(de)屬性都(∏&€dōu)能(néng)按照(zhào)字母排←×"δ序,那(nà)查找修改的(de)時(shí)候就(jiù)能(néng)更加快"β←ε(kuài)速:
  /***樣式屬性按字母排序***/
  div{
  background-color:#3399cc;
  color:#666;
  font:1.2em/1.4emArial,Helvetica,s↓φans-serif;
  height:300px;
  margin:10px5px;
  padding:5px010px5px;
  width:30%;
  z-index:10;
  }
  8.保持CSS的(de)可(kě)讀(dú)性
  書(shū)寫可(kě)讀(dú)的(de)CSS将會(©ε"huì)使得(de)更容易查找和(hé)修改樣式。對(duì)于以下(x€¥‍©ià)兩種情況,哪種可(kě)讀(dú)性更β♦高(gāo),我想不(bù)言而明(míng)。
  /***每個(gè)樣式屬性寫一(yī)行(xíng¥₽λ↔)***/
  div{
  background-color:#3399cc↔•♦;
  color:#666;
  font:1.2em/1.4emArial,>≠‌Helvetica,sans-serif;
  height:300px;
  margin:10px5px;
  padding:5px010px5px;
  width:30%;
  z-index:10;
  }
  /***所有(yǒu)的(de)樣式屬性寫在同一(yī∞↓)行(xíng)***/
  div{background-color:#3399cc<≥®;color:#666;font:1.2em/1.4emArial,Hel★σvetica,sans-serif;height:300px;mar∏¶∑gin:10px5px;padding:5px010p↑π±x5px;width:30%;z-index:↕δ10;}
  當對(duì)于一(yī)些(xiē)樣式屬α∏→性較少(shǎo)的(de)選擇器(qì)πφ,我會(huì)寫到(dào)一(yī)行(xíng):
  /***選擇器(qì)屬性少(shǎo)的(de)寫在同♠®•一(yī)行(xíng)***/
  div{background-color:#3399cc;color:≠δ∏#666;}
  對(duì)于這(zhè)個(gè)規則并非硬性規定,φ↔但(dàn)無論您采用(yòng)哪種寫法,我的(de)建議(yì)是(s®≈hì)始終保持代碼一(yī)緻。屬性多(duō)的(de)分←∑‍÷(fēn)行(xíng)寫,屬性少(shǎo)‌δ≥于3個(gè)可(kě)以寫一(yī)行(xíng)。
  9.選擇更優的(de)樣式屬性值
  CSS中有(yǒu)些(xiē)屬性采用(γ×≥↑yòng)不(bù)同的(de)屬性值,雖然達到(dào)的(d↔ e)效果差不(bù)多(duō),當性能(néng)上(shàng)卻存在著( ©∏γzhe)差異,如(rú)
  區(qū)别在于border:0把borα€₩αder設為(wèi)0px,雖然在頁面上φα↑(shàng)看(kàn)不(bù)見(jiàn),但γ (dàn)按border默認值理(lǐ)解,浏覽器(qì)依然對(duì)bo‌¶rder-width/border-colo¥αr進行(xíng)了(le)渲染,即已經占用(yòng)了Ω↕(le)內(nèi)存值。
  而border:none把border設為(wèi)&quo£∏t;none"即沒有(yǒu),浏覽器(qì)解析"∞↔★none"時(shí)将不(bù)作(zuò)‍β'↕出渲染動作(zuò),即不(bù)會(huì)消耗內(nèi)存值。所以建議★₹(yì)使用(yòng)border:none;
  同樣的(de),display:none隐藏對(duì)象浏覽器✔π₽→(qì)不(bù)作(zuò)渲染,不(bù)占用(yòng)內(n• ©≥èi)存。而visibility:hid↕δ¥den則會(huì)。
  10.使用(yòng)<link>代替@i•∞'★mport
  首先,@import不(bù)屬于XHTML标簽,也(yě)不(bù§↔ε)是(shì)Web标準的(de)一(yī)部分(fēn≠ φ),它對(duì)于較早期的(de)浏覽器(qì)兼容也(yě)不(bù∑¶)高(gāo),并且對(duì)于網站(zhàβ≠↔n)的(de)性能(néng)有(yǒu)某些(xi​$ē)負面的(de)影(yǐng)響。
  11.使用(yòng)外(wài)部樣式表
  這(zhè)個(gè)原則始終是(shì)一(yī)個(£±‌ gè)很(hěn)好(hǎo)的(de)設計(jì)實踐。不(bù)單可¥∞ ←(kě)以更易于維護修改,更重要(yào)的(λδ"de)是(shì)使用(yòng)外(wài)部文(wén)件(jià✔≥εn)可(kě)以提高(gāo)頁面速度,因為(wèi)CSS文(wén)件¥÷'(jiàn)都(dōu)能(néng)在浏覽器(qì)™←©中産生(shēng)緩存。內(nèi)置在HTML文(wén)檔中的( ÷♥>de)CSS則會(huì)在每次請(qǐng)求中随HTML文(wén)檔重♦  新下(xià)載。所以,在實際應用(yòng)中,沒有(yǒu)&∞'✔必要(yào)把CSS代碼內(nèi)置在HTML文(wén)≠γ檔中:
  <styletype="text©&©φ/css">
  #container{..}
  #sidebar{..}
  </style>
  而是(shì)使用(yòng)<link>導入外(wài)φ±部樣式表:<linkrel="sε&tylesheet"type="text/css&qu✘‍∞​ot;href="css/styles.cs☆&s"/>
  12.避免使用(yòng)CSS表™¥ ¥達式(Expression)
  CSS表達式是(shì)動态設置CSS屬性的(d♣©÷∏e)強大(dà)(但(dàn)危險)方法。InternetExplorer↕σ¶®從(cóng)第5個(gè)版本開(kāi)始支持CSS表達式。下(xiàλ →)面的(de)例子(zǐ)中,使用(yòng)CSS表達式可(kě)以® σ實現(xiàn)隔一(yī)個(gè)小(xiǎo)時(shí)☆™✘£切換一(yī)次背景顔色:
  background-color:expression((newD∏©σ♠ate()).getHours()%2?"#B8D4FF&quε≈ot;:"#F08A00");
  如(rú)上(shàng)所示,expressio∏∑¶n中使用(yòng)了(le)JavaScript表達式。CSS屬性根據♥ JavaScript表達式的(de)計(jì)算(suàn)結果∏→ 來(lái)設置。
  表達式的(de)問(wèn)題就(jiù)在于它的(de •€)計(jì)算(suàn)頻(pín)率要(yào)比我們想象的(↑✔<de)多(duō)。不(bù)僅僅是(shì)在頁面顯示和(h<→é)縮放(fàng)時(shí),就(jiù)是(shì)在頁面滾動、乃至移動φ‍鼠标時(shí)都(dōu)會(huì)要(yào)↕ >←重新計(jì)算(suàn)一(yī)次。給☆§γ‍CSS表達式增加一(yī)個(gè)計(jì)數✔↕£×(shù)器(qì)可(kě)以跟蹤表達式的(de)計(jì)算(suàn•→★)頻(pín)率。在頁面中随便移動鼠标都(dōu)可(kě)以輕松達到(dà∞∏π™o)10000次以上(shàng)的(de)計(jì±↕)算(suàn)量。
  如(rú)果必須使用(yòng)CSS表達式,×€$一(yī)定要(yào)記住它們要(yào)計(jì)算(su¥δàn)成千上(shàng)萬次并且可(kě)能(nén←σ→§g)會(huì)對(duì)你(nǐ)頁面的(de)≥$性能(néng)産生(shēng)影(yǐng)↕π響。所以,在非不(bù)得(de)已,請(qǐng)避免使用(yòng≈&‌)CSS表達式。
  最後不(bù)要(yào)忘了(le),當我們全部做(z‌←★↓uò)好(hǎo)css後,我們要(yào)學會(h>§uì)壓縮它的(de)體(tǐ)積,也(yě)就(σ✔≥jiù)是(shì)減少(shǎo)無用β♥(yòng)的(de)代碼,比如(rú)多(duō)餘的(de)注©α™×釋、重複的(de)寫法、不(bù)合理(lǐ)γ↔λ的(de)屬性等,我們可(kě)以自(zì)己來(lái)檢查,也(yěε≈•)可(kě)以通(tōng)過工(gōng)具來(lái)&★♣測試,有(yǒu)些(xiē)前端制(zhì)作(zuò)者寫的(de) ₩css都(dōu)超過50k,并不(bù‍σ‍δ)是(shì)不(bù)可(kě)以,隻是(shì)在此<↑"≠告誡大(dà)家(jiā),冗餘的(de)代碼§α是(shì)不(bù)太好(hǎo)的(∑​€de)書(shū)寫習(xí)慣。總之事(shì)必親為(wèi)€α"₽,隻有(yǒu)我們用(yòng)心來(lá&Ω↕★i)做(zuò),才能(néng)做(zuò)的(dδ★e)更加完美(měi)。
    本文(wén)由邯鄲網絡公司首創網絡整理(lǐ)編輯發布,¥>∞§請(qǐng)勿轉載、複制(zhì)、摘抄等!

+ 查看(kàn)更多(duō)我們的(de)客戶 / Our client

0310-4559740
400-990-1661
    24小(xiǎo)時(shí)報(bào)務熱(rè)線
    18931045623
在線客服
首創網絡邯鄲公司
邯鄲公司
電(diàn)話(huà):0310-4559740 / δ✔&18931045623  地(dì)址:邯鄲市(shì€λ≠)叢台區(qū)頤高(gāo)廣場(chǎng)B座13層1304'β★室