BridgeCraft logobridgecraft
週報顧問服務作品集關於聯絡登入
聯絡

bridgecraft

從資料視覺化到 AI Agent,一直在找下一個 meta

文章主題指南週報顧問服務Labs作品集系統架構關於聯絡RSS

© 2026 BridgeCraft — Waiting7777. All rights reserved.

← 所有文章

CSS 渲染原理與優化策略讀後心得

2021年10月15日 · Waiting7777 · 2 分鐘閱讀

既然 CSS 排名在上升,那麼我們花點時間來研究相關原理也就物有所值了。

CSS 渲染

HTML Parser 產生 DOM tree,CSS Parser 產生 style rules,然後就是常見的 render tree,經過 layout paint composition 把畫面畫出來。

CSS 特性

1. 優先級

CSS 有一套權重規則,某個元素被套用多個 css 時,取權重高的。

!import > inline > ID > class > attr > elements

2. 層疊性

層疊性就是對多個樣式來源進行疊加,然後根據權重規則來處理衝突。

3. 繼承性

font, text, color 類的 css ,如果本身沒有樣式,會繼承父元素的樣式,但優先級是非常低的。

CSS 選擇器執行順序

渲染引擎解析 css selector 的時候是從右往左解析,為什麼呢?

<div>
   <div class="test">
      <p><span> 111 </span></p>
      <p><span> 222 </span></p>
      <p><span> 333 </span></p>
      <p><span class='yellow'> 444 </span></p>
   </div>
</div>

CSS 如下:

div > div.test p span.yellow{
   color:yellow;
}

如果從左往右,要先找到所有 div 再來要找到所有子 div 並且 class 是 test,再依序尋找 p span.yellow ,然後如果沒有找到,再回到最原先的 div 重新找。

一聽是不是覺得很沒有效率?所以其實是從右往左解析,因為通常越右邊的條件越嚴苛,元素越少,所以先把右邊的都找出來,再看父元素是否符合規則即可。

高效的 ComputedStyle

瀏覽器還有個非常好的策略,如果多個 Element 的 style 可以不通過計算就能知道相等,那麼就會只計算一次,並且共用那次的 CompoutedStyle 結果。

<section class="one">
    <p class="desc">One</p>
</section>

<section class="one">
    <p class="desc">two</p>
</section>

  • TagName 和 Class 要一樣
  • 不能有 style 屬性
  • 不能使用 Sibling selector ,如: first-child
  • mappedAttribute 必須相等

優化策略

在理解了渲染原理,以及解析原理後,整理出了一些優化的原則可供參考:

  • id selector ,id selector 非常高效,因為是網頁裡唯一。

  • 避免太深層的 css 例如:

/* Bad  */
div > div > div > p {color:red;} 
/* Good  */
p-class{color:red;}

  • 盡量少用 attribute selector
/* Bad  */
p[id="test"]{color:red;}  
p[class="blog"]{color:red;}  
/* Good  */
#test{color:red;}  
.blog{color:red;}

  • 遵守 CSSLint 規則

  • 減少 CSS 文件大小

  • 移除空的規則

  • 值為0不需要單位

  • CSS Will Change

will-chage 屬性讓開發者可以提前告訴瀏覽器會有哪些變化,讓瀏覽器提早做準備

  • 避免過分 reflow 常見的 reflow 元素:
width
height
padding
margin
display
border-width
border
top
position
font-size
float
text-align
overflow-y
font-weight
overflow
left
font-family
line-height
vertical-align
right
clear
white-space
bottom
min-height

  • 高效的利用 computedStyle

  • 共用 class

  • 謹慎使用 childSelector

  • 盡可能共享

結語:

過去在寫 css 的時候通常都是想要什麼寫什麼,所以常常有多餘的互相蓋來蓋去,在用了 tailwindcss 之後,以及文章中提到的 computedStyle 或許最後共用且原子化的 css 就是最好用的了。

參考資料

http://jartto.wang/2019/10/23/css-theory-and-optimization/

每週一篇 — 技術趨勢背後的商業邏輯

分享:

Waiting7777

WoW Arena 冠軍轉前端,用電競 meta 思維拆解技術趨勢。

關於作者

相關文章

VC 瘋投 Shopping Agent,但 Amazon 已經開始封鎖了:這個賽道值得賭嗎AI AgentsVC+4

VC 瘋投 Shopping Agent,但 Amazon 已經開始封鎖了:這個賽道值得賭嗎

把這篇跟 Amazon 封鎖 Meta 的事件一起看 — VC 瘋狂投錢進來,但平台方已經開始設防,這個賽道的商業風險遠比技術風險大。

2026年9月22日 · Waiting7777 · 7 分鐘閱讀

繼續閱讀 →
AI 第三時代:「永遠在線的 AI 同事」這個概念是真的嗎?GPTAI+2

AI 第三時代:「永遠在線的 AI 同事」這個概念是真的嗎?

從「AI 同事」這個框架切入,評估這個概念是真實趨勢還是產品行銷話術 — 什麼樣的工作場景真的需要 persistent AI,什麼場景還是用工具就夠了。

2026年9月20日 · Waiting7777 · 7 分鐘閱讀

繼續閱讀 →
AI 大老們喊了幾年「管管我們吧」,然後呢?一份帶點諷刺的時間軸AI監管+3

AI 大老們喊了幾年「管管我們吧」,然後呢?一份帶點諷刺的時間軸

從「說一套做一套」的角度切入:AI 高管喊監管不是新鮮事,但每次都有具體的時機背景。整理這條時間軸背後的商業動機 — 喊監管,往往是為了鞏固自己的護城河。

2026年9月18日 · HW SHU · 5 分鐘閱讀

繼續閱讀 →

這篇文章對你有幫助嗎?

每週一篇 — 技術趨勢背後的商業邏輯

AI 產業在變什麼、工程師該注意什麼——拆清楚寄到你的信箱。