各位北鼻們大家晚安

今天版主所要分享的是每次寫語法之後所學到的小經驗

以及大家常容易犯的小錯誤

很有可能造成語法無法正常顯示或出小問題

而且現在無名樣式設計上的語法限制越來越多了

不但造成大家在寫作語法上的困擾與麻煩

樣式的設計上也受到了多重的限制

所以版主這次想要藉由這次的語法教學分享

來幫助各位在語法寫作上所會碰到的問題

希望這篇文章可以幫助大家寫文章不在"凸鎚"


希望各位北鼻會喜歡這次的分享

可以推薦 / 可以引用 / 可以轉貼註明出處

各位北鼻們~順便大發一下慈悲點右邊的廣告


1
、十六進位的顏色值對位數與大小寫


編寫十六進位顏色值時你可能會用小寫字母或省略成3位元數,

關於這寫法沒找到確實的資料證明對流覽器的渲染效率是否有影響,

但十六進位的顏色值默認標準是大寫及6位數標注。

在未知情況下不希望冒險而降低了渲染的效率。

  * 不贊成 - color:#f3a;

  * 建議用 - color:#FF33AA;



2
、display與visibility的差異

他們用於設置或檢索是否顯示物件。

display隱藏物件不保留物理空間,

visibility為隱藏物件保留佔據的物理空間。

當流覽器渲染被佔據的物理空間時,

會有所消耗資源。

  * 不贊成 - visibility:hidden;
 
     * 建議用 - display:none;



3
、border:none;與border:0;的區別

和display與visibility的關係類似,

分別不保留與保留空間。

更多的是border:0;儘管可以隱藏掉邊框,

但它會為你保留border-color/border-style的使用權。

  * 不贊成 - border:0;

  * 建議用 - border:none;



4
、不宜過小的背景圖片平鋪

一張寬高1px的背景圖片,

雖然檔體積非常之小,

但渲染寬高500px的板塊需要重複平鋪2500次。

提高背景圖片渲染效率跟圖片尺寸及體積有關,

最大的圖片檔體積保持約70KB。

  * 不贊成 - 寬高8px以下的平鋪背景圖片

  * 建議用 - 衡量適中體積及尺寸的背景圖片




5
、IE的濾鏡

IE的濾鏡除了比較消耗資源外也有相容性問題。

當中有令PNG透明的濾鏡,

可採用GIF或JPG似透非透的辦法來避免使用此濾鏡。

建議只在IE6應用GIF透明,因為IE7以上已經支持了PNG透明。

  * 不贊成,濫用IE濾鏡因為消耗資源外也有相容性問題。

  * 建議用,最好選擇其他方法能避免使用濾鏡。




6、*{ margin:0; padding:0;}避免流覽器樣式差異

*號通配符把所有標籤都初始化一遍,

流覽器的渲染消耗一定的資源。

有部分在標籤在不同流覽器上幾乎無差異,

或是某些已經不推薦使用的標籤(因為你不會去用它),

它們不需通配符要重新初始化一遍這樣做能節省一點資源。

  * 不贊成,使用*號通配符

  * 不贊成,div span button b table等標籤納入通配符控制內外填充樣式

  * 建議用,有選擇性地使用通配符控制內外填充樣式。



7、不要添加額外的標籤來描述class或id

如果你有一個選擇器是以id作為關鍵選擇符,

請不要添加多餘標籤名上去。

因為ID是唯一的,你不要為了一個不存在的理由而降低了匹配的效率。

  * 不贊成 - button#backButton { }
  
        * 不贊成 - .menu-left #newMenuIcon { }
  
        * 建議用 - #backButton { }
  
        * 建議用 - #newMenuIcon { }



8、儘量選擇最特殊的類來存放選擇器

降低系統效率的一個最大原因是我們在標籤類中用了過多的選擇符。

通過添加 class 到元素,我們可以將類別進行再細分為 class 類,

這樣就不用為了一個標籤浪費時間去匹配過多的選擇符了。

  * 不贊成 - treeitem[mailfolder="true"] > treerow > treecell { }

  * 建議用 - .treecell-mailfolder { }


9、避免子孫選擇符


子孫選擇符是CSS中最耗資源的選擇符。

他真的是非常的耗資源,

尤其是在選擇器使用標籤類或通用類的時候。

很多情況中,我們真正想要的是子選擇符。

除非有明確說明,在 UI CSS 中是嚴禁使用子孫選擇符的。

  * 不贊成 - treehead treerow treecell { }

  * 好一點,但還是不行(參照下一條) - treehead > treerow > treecell { }



10、標籤類中不要包含子選擇符

不要在標籤類中使用子選擇符。

否則,每次元素的出現,

都會額外地增加匹配時間。

(特別是當選擇器似乎多半會被匹配的情況下)

  * 不贊成 - treehead > treerow > treecell { }

  * 建議用 - .treecell-header { }



11、留意所有子選擇符的使用

小心地使用子選擇符。

如果你能想出一個的不使用他的方法,

那麼就不要使用。

特別是在 RDF 樹和功能表會頻繁地使用子選擇符,像這樣。


  * 不贊成 - treeitem[IsImapServer="true"] > treerow > .tree-folderpane-icon { }

請記住 RDF 的屬性是可以在範本中被複製的!

利用這一點,我們可以複製那些想基於該屬性改變的子 XUL 元素上的 RDF 屬性。

  * 建議用 - .tree-folderpane-icon[IsImapServer="true"] { }

arrow
arrow
    全站熱搜

    張紫彤 發表在 痞客邦 留言(0) 人氣()