CSS Trigger (Reflow, Repaint)

2024년 10월 06일
2

CSS Trigger

브라우저는 화면 내 렌더트리의 CSS 속성이 변경되면, 이를 탐지하여 렌더링을 재시작합니다.

브라우저의 렌더링 엔진이 화면을 그리는 과정은 다음과 같습니다.

Render Tree -> Layout(Reflow) -> Paint(Repaint) -> Composite

특정 단계가 다시 시작되면, 그 뒤 단계도 같이 진행됩니다.
CSS 속성이 변했을 때, 렌더링 재시작점은 속성마다 다릅니다.

각 속성별로, 렌더링 재시작점이 어디인지 정리해보겠습니다.


Reflow부터 시작

  • align-content
  • align-items
  • border-[bottom/top/left/right]-style
  • border-[bottom/top/left/width]-width
  • border-collapse
  • border-image-source
  • bottom / top / left / right
  • box-shadow
  • box-sizing
  • clear
  • direction
  • display
  • flex-basis
  • flex-direction
  • flex-grow
  • flex-shrink
  • flex-wrap
  • float
  • font-family
  • font-kerning
  • font-size
  • font-style
  • font-variant
  • font-variant-ligatures
  • font-weight
  • height / width
  • justify-content
  • letter-spacing
  • line-height
  • list-style-image
  • list-style-position
  • list-style-type
  • margin-[bottom/left/right/top]
  • max-[height/width]
  • min-[height/width]
  • order
  • outline-color
  • outline-offset
  • outline-style
  • outline-width
  • overflow-[x/y]
  • padding-[top/bottom/right/left]
  • position
  • table-layout
  • text-align
  • text-indent
  • text-rendering
  • text-shadow
  • text-transform
  • unicode-bidi
  • vertical-align
  • white-space
  • word-break
  • word-spacing
  • word-wrap

Repaint부터 시작

  • backface-visibility
  • background-attachment
  • background-blend-mode
  • background-clip
  • background-color
  • background-image
  • background-origin
  • background-position
  • background-repeat
  • background-size
  • border-[bottom/top]-[right/left]-radius
  • border-[bottom/top/left/right]-color
  • border-image-outset
  • border-image-repeat
  • border-image-slice
  • border-image-width
  • clip
  • color
  • opacity
  • resize
  • text-decoration
  • transform-origin
  • visibility
  • z-index

Composite만 발생

  • cursor
  • orphans
  • perspective
  • perspective-origin
  • pointer-events
  • transform
  • transform-style
  • widows

Reference