ํ๋ก ํธ์๋๋ฅผ ๊ณต๋ถํ๋ฉด์ ๊ฐ์ฅ ๋ง์ด ๋ฃ๋ ๋ง ์ค ํ๋๋
โ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์ ์ ์์์ผ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํ ์ ์๋คโ๋ ๊ฒ.
์ด๋ฒ์ ์ ๋ง ์ฒ์๋ถํฐ ๋๊น์ง ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ป๊ฒ HTML์ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋์ง ์ ๋ฆฌํด๋ดค๋ค.
HTML โ ํ์ฑ โ DOM Tree
+ CSS โ CSSOM Tree
โ
Render Tree ์์ฑ
โ
Layout (Reflow)
โ
Paint (Repaint)
โ
Composite (ํฉ์ฑ)
๋ธ๋ผ์ฐ์ ๋ HTML์ ํ์ฑํ๋ฉด์ ๋ ธ๋ ๊ธฐ๋ฐ์ ๊ตฌ์กฐํ๋ ํธ๋ฆฌ, ์ฆ DOM(Document Object Model)์ ๋ง๋ ๋ค.
<body>
<h1>Hello</h1>
<p>World</p>
</body>
์ด๋ฐ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ ํํ์ DOM Tree๋ก ๋ฐ๋๋ค.
- body
โโโ h1
โโโ p
CSS๋ ๋ณ๋๋ก ํ์ฑ๋์ด CSSOM (CSS Object Model)์ด๋ผ๋ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ง๋ค์ด์ง๋ค.
์ด ํธ๋ฆฌ๋ DOM์ฒ๋ผ CSS์ ๊ณ์ธต์ ๊ด๊ณ๋ฅผ ํํํ๋ค.
h1 {
color: red;
}
DOM Tree + CSSOM Tree๊ฐ ๊ฒฐํฉ๋์ด ํ๋ฉด์ ์ค์ ๊ทธ๋ ค์ง ์์๋ง ์ถ๋ ค๋ธ Render Tree๊ฐ ๋ง๋ค์ด์ง๋ค.
display: none
์์๋ ํฌํจ๋์ง ์๋๋ค.Render Tree์ ๊ฐ ์์๊ฐ ์ด๋์ ์์นํ ์ง, ์ผ๋ง๋ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง์ง ๊ณ์ฐํ๋ ๊ณผ์ ์ด๋ค.
์ด๊ฑธ ํํ Reflow๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋จ๊ณ | ์ค๋ช | ์ฑ๋ฅ ์ํฅ๋ |
---|---|---|
Reflow | ์์น, ํฌ๊ธฐ ์ฌ๊ณ์ฐ | ๐ฅ ๋์ |
Repaint | ์์/๋ฐฐ๊ฒฝ ๋ฑ ์๊ฐ ์์๋ง ๋ณ๊ฒฝ | ์ค๊ฐ |
Composite | ๋ ์ด์ด ํฉ์ฑ | ๋ฎ์ |
์ด์ ์๋ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ๋งํ ๋ Reflow๋ฅผ ์ค์ด์
, Paint๋ฅผ ์ต์ํํ์
๋ ๋ง์ด
๋ง์ฐํ๊ฒ๋ง ๋๊ปด์ก๋๋ฐ, ์ด์ ๋ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ ๋ฌด์์ ์ ์กฐ์ฌํด์ผ ํ๋์ง ๊ฐ์ด ์กํ๋ค.
ํนํ ์ ๋๋ฉ์ด์
๋ง๋ค ๋ transform
์ด๋ opacity
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ๊ดํ ๊ถ์ฅ๋๋ ๊ฒ ์๋์๋ค๋ ๊ฑธ ์๊ฒ ๋๋ค!
๐ง "ํ๋ฉด์ ๋ณด์ฌ์ง๋ ๊ฑด ์ฝ๋ ๊ทธ ์์ฒด๊ฐ ์๋๋ผ, ๋ ๋๋ง์ด๋ผ๋ ์ฌ์ ์ ๊ฑฐ์น ๊ฒฐ๊ณผ๋ค."