作為前端,你是否注意到CSS書寫順序的重要性东羹?

如果你沒有意識到css書寫順序?qū)π阅艿挠绊懚死瘢憧赡茈S便寫,想到哪個(gè)加哪個(gè)伞矩,沒有順序性可言瓢阴,當(dāng)有一天,你開始考慮性能優(yōu)化的時(shí)候垒拢,你會(huì)發(fā)現(xiàn)旬迹,正確的書寫css順序,能幫我們性能提升不少, 如果你已經(jīng)使用ts求类,并且css做了配置奔垦,你會(huì)發(fā)現(xiàn)如果css隨便寫,會(huì)給你waning提示尸疆,下面就來說一下css書寫的順序椿猎,以及為什么要這樣寫惶岭?

1、書寫順序
(1)定位屬性相關(guān):position display float left top right bottom overflow clear z-index
(2)自身屬性相關(guān):width height padding border margin background
(3)文字樣式相關(guān):font-family font-size font-style font-weight font-varient color
(4)文本屬性相關(guān):text-align vertical-align text-wrap text-transform text-indent text-decoration letter-spacing word-spacing white-space text-overflow
(5)css3中新增屬性:content box-shadow border-radius transform 等等
這樣做的好處是:減少瀏覽器reflow(回流)犯眠,提升瀏覽器渲染dom的性能

2按灶、瀏覽器的渲染原理
①解析html構(gòu)建dom樹,解析css構(gòu)建css樹:將html解析成樹形的數(shù)據(jù)結(jié)構(gòu)筐咧,將css解析成樹形的數(shù)據(jù)結(jié)構(gòu)
②構(gòu)建render樹:DOM樹和CSS樹合并之后形成的render樹鸯旁。
③布局render樹:有了render樹,瀏覽器已經(jīng)知道那些網(wǎng)頁中有哪些節(jié)點(diǎn)量蕊,各個(gè)節(jié)點(diǎn)的css定義和以及它們的從屬關(guān)系铺罢,從而計(jì)算出每個(gè)節(jié)點(diǎn)在屏幕中的位置。
④繪制render樹:按照計(jì)算出來的規(guī)則残炮,通過顯卡把內(nèi)容畫在屏幕上韭赘。

css樣式解析到顯示至瀏覽器屏幕上就發(fā)生在②③④步驟,可見瀏覽器并不是一獲取到css樣式就立馬開始解析而是根據(jù)css樣式的書寫順序?qū)⒅凑誨om樹的結(jié)構(gòu)分布render樣式势就,完成第②步泉瞻,然后開始遍歷每個(gè)樹結(jié)點(diǎn)的css樣式進(jìn)行解析,此時(shí)的css樣式的遍歷順序完全是按照之前的書寫順序蛋勺。在解析過程中瓦灶,一旦瀏覽器發(fā)現(xiàn)某個(gè)元素的定位變化影響布局,則需要倒回去重新渲染抱完,正如按照這樣的書寫書序:
width: 100px;
height: 100px;
background-color: red ;
position: absolute;
當(dāng)瀏覽器解析到position的時(shí)候突然發(fā)現(xiàn)該元素是絕對定位元素需要脫離文檔流贼陶,而之前卻是按照普通元素進(jìn)行解析的,所以不得不重新渲染巧娱,解除該元素在文檔中所占位置碉怔,然而由于該元素的占位發(fā)生變化,其他元素也可能會(huì)受到它回流的影響而重新排位禁添。最終導(dǎo)致③步驟花費(fèi)的時(shí)間太久而影響到④步驟的顯示撮胧,影響了用戶體驗(yàn)。

repaint(重繪):改變某個(gè)元素的背景色老翘、文字顏色芹啥、邊框顏色等等不影響它周圍或內(nèi)部布局的屬性時(shí),屏幕的一部分要重畫铺峭,但是元素的幾何尺寸沒有變墓怀。
1)render樹的結(jié)構(gòu)不等同于DOM樹的結(jié)構(gòu),一些設(shè)置display:none的節(jié)點(diǎn)不會(huì)被放在render樹中卫键,但會(huì)在dom樹中傀履。
2)有些情況,比如修改了元素的樣式莉炉,瀏覽器并不會(huì)立刻reflow或repaint钓账,而是把這些操作積攢一批碴犬,然后做一次reflow,這也叫做異步reflow.但在有些情況下梆暮,比如改變窗口服协,改變頁面默認(rèn)的字體等,對于這些情況啦粹,瀏覽器會(huì)馬上進(jìn)行reflow.
3)為了更好的用戶體驗(yàn)蚯涮,渲染引擎將會(huì)盡可能早的將內(nèi)容呈現(xiàn)到屏幕上,并不會(huì)等到所有的html都解析完成之后再去構(gòu)建和布局render樹卖陵。它是解析完一部分內(nèi)容就顯示一部分內(nèi)容,同時(shí)张峰,可能還在通過網(wǎng)絡(luò)下載其余內(nèi)容泪蔫。

所以規(guī)范的的css書寫順序可以提升我們的性能,也是性能優(yōu)化的一部分喘批!
——————————————————————————————————————
方便自己查閱
原文鏈接:https://blog.csdn.net/qq_36060786/article/details/79311244

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末撩荣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子饶深,更是在濱河造成了極大的恐慌餐曹,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件敌厘,死亡現(xiàn)場離奇詭異台猴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)俱两,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門饱狂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宪彩,你說我怎么就攤上這事休讳。” “怎么了尿孔?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵俊柔,是天一觀的道長。 經(jīng)常有香客問我活合,道長雏婶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任芜辕,我火速辦了婚禮尚骄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘侵续。我一直安慰自己倔丈,他們只是感情好憨闰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著需五,像睡著了一般鹉动。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宏邮,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天泽示,我揣著相機(jī)與錄音,去河邊找鬼蜜氨。 笑死械筛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的飒炎。 我是一名探鬼主播埋哟,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼郎汪!你這毒婦竟也來了赤赊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤煞赢,失蹤者是張志新(化名)和其女友劉穎抛计,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體照筑,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吹截,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了朦肘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饭弓。...
    茶點(diǎn)故事閱讀 40,013評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖媒抠,靈堂內(nèi)的尸體忽然破棺而出弟断,到底是詐尸還是另有隱情,我是刑警寧澤趴生,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布阀趴,位于F島的核電站,受9級特大地震影響苍匆,放射性物質(zhì)發(fā)生泄漏刘急。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一浸踩、第九天 我趴在偏房一處隱蔽的房頂上張望叔汁。 院中可真熱鬧,春花似錦、人聲如沸据块。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽另假。三九已至像屋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間边篮,已是汗流浹背己莺。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留戈轿,地道東北人凌受。 一個(gè)月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像思杯,于是被迫代替她去往敵國和親胁艰。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容