這篇文章主要介紹了CSS樣式書寫順序和命名規范及注意事項,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
書寫順序的意義
減少瀏覽器reflow(回流),提升瀏覽器渲染dom的性能
①:
解析html構建dom樹,解析css構建css樹:將html解析成樹形的數據結構,將css解析成樹形的數據結構
②:
構建render樹:DOM樹和CSS樹合并之后形成的render樹。
③:
布局render樹:有了render樹,瀏覽器已經知道那些網頁中有哪些節點,各個節點的css定義和以及它們的從屬關系,從而計算出每個節點在屏幕中的位置。
④:
繪制render樹:按照計算出來的規則,通過顯卡把內容畫在屏幕上。
css樣式解析到顯示至瀏覽器屏幕上就發生在②③④
步驟,可見瀏覽器并不是一獲取到css樣式就立馬開始解析而是根據css樣式的書寫順序將之按照dom樹的結構分布render樣式,完成第②
步,然后開始遍歷每個樹結點的css樣式進行解析,此時的css樣式的遍歷順序完全是按照之前的書寫順序。
優先級第一--定位屬性:
{ display 規定元素應該生成的框的類型。 position 定位規定元素的定位類型。 float 規定框是否應該浮動。 left top right bottom overflow 規定當內容溢出元素框時發生的事情。 clear 清除 z-index 設置元素的堆疊順序。 content 內容 list-style visibility 可見性/顯示 }
優先級第二--自身屬性:
{ width height border padding margin background }
優先級第三--文字樣式:
{ font-family font-size font-style 規定文本的字體樣式。 font-weight font-varient 規定是否以小型大寫字母的字體顯示文本 color }
優先級第四--文本屬性:
{ text-align 規定文本的水平對齊方式。 vertical-align 設置元素的垂直對齊方式。 text-wrap 規定文本的換行規則。 text-transform 控制文本的大小寫。 text-indent 規定文本塊首行的縮進。 text-decoration 規定添加到文本的裝飾效果。 letter-spacing 設置字符間距。 word-spacing 設置單詞間距。 white-space 規定如何處理元素中的空白。 text-overflow 規定當文本溢出包含元素時發生的事情。 }
優先級第五--CC3中新增屬性:
{ box-shadow 向方框添加一個或多個陰影。 cursor 規定要顯示的光標的類型(形狀)。 border-radius background:linear-gradient transform…… 向元素應用 2D 或 3D 轉換。 }
CSS代碼的命名規范
必須以字母開頭命名選擇器,這樣可保證在所有瀏覽器下都能兼容;
不允許單個字母的類選擇器出現;
不允許命名帶有廣告等英文的單詞,例如ad,adv,adver,advertising,已防止該模塊被瀏覽器當成垃圾廣告過濾掉。任何文件的命名均如此。
下劃線 ’ _ ’ 禁止出現在class命名中,全小寫,統一使用’-‘連字符.
禁止駝峰命名 className
見名知意
CSS代碼注意事項
不要以完全沒有語義的標簽作為選擇器,這會造成大面積污染
簡寫CSS顏色屬性值
刪除CSS屬性值為0的單位
刪除無用CSS樣式
為單個CSS選擇器或新申明開啟新行
避免過度簡寫 , .ico足夠表示這是一個圖標 , 而.i不代表任何意思
使用有意義的名稱,使用結構化或者作用目標相關的,而不是抽象的名稱
感謝你能夠認真閱讀完這篇文章,希望小編分享的“CSS樣式書寫順序和命名規范及注意事項”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。