์ด๋ฏธ์ง์ ์ฝํ
์ธ ์ฌ์ด ํฐ ์ ํด๊ฒฐํ๊ธฐ: CSS ํธ๋ฌ๋ธ์ํ
๐จ
๐ ๋ฌธ์ ์ค๋ช
์ด๋ฏธ์ง ์์ญ๊ณผ ์ฝํ
์ธ ์์ญ ์ฌ์ด์ ์๋ํ์ง ์์ ํฐ ์ ์ด ๋ฐ์ํ๋ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ์ด์
๋ฐ์ ์์ธ
- ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๊ณผ์ ์์ ๋ฐ์ํ๋ ํฝ์
๊ณ์ฐ ์ฐจ์ด
- ์ธ๋ผ์ธ ์์ ์ฌ์ด์ ๊ณต๋ฐฑ ๋ฌธ์
- ์ด๋ฏธ์ง ํ๋จ ๊ธฐ๋ณธ ์ฌ๋ฐฑ
๐ก ํด๊ฒฐ ๋ฐฉ๋ฒ
1. ๊ธฐ๋ณธ์ ์ธ ํด๊ฒฐ์ฑ
.modal-content {
gap: 0;
font-size: 0;
}
.modal-detail {
font-size: 1rem;
}
2. ํฌ๊ด์ ์ธ ํด๊ฒฐ์ฑ
.modal-content {
background: #1a1a1a;
}
.modal-img {
margin: 0;
font-size: 0;
}
.modal-img img {
vertical-align: top;
margin-bottom: -1px;
}
3. ํ๋์จ์ด ๊ฐ์์ ํ์ฉํ ํด๊ฒฐ์ฑ
.modal-wrapper {
transform: translate(-50%, -50%) translateZ(0);
backface-visibility: hidden;
-webkit-font-smoothing: antialiased;
}
๐ ์ฝ๋ ์ค๋ช
1. ๊ธฐ๋ณธ์ ์ธ ํด๊ฒฐ์ฑ
์ ์๋ฆฌ
- gap ์์ฑ ์ ๊ฑฐ๋ก flex ์ปจํ
์ด๋์ ๊ฐ๊ฒฉ ์ ์ด
- font-size: 0์ผ๋ก ์ธ๋ผ์ธ ์์ ์ฌ์ด ๊ณต๋ฐฑ ์ ๊ฑฐ
- ํ์ํ ์์์๋ง font-size ๋ณต๊ตฌํ์ฌ ํ
์คํธ ํ์
2. ํฌ๊ด์ ์ธ ํด๊ฒฐ์ฑ
์ ํน์ง
- ๋ฐฐ๊ฒฝ์ ํต์ผ๋ก ์๊ฐ์ ์ผ๊ด์ฑ ํ๋ณด
- margin๊ณผ font-size ์กฐ์ ๋ก ๊ฐ๊ฒฉ ์๋ฒฝ ์ ๊ฑฐ
- vertical-align ์์ฑ์ผ๋ก ์ด๋ฏธ์ง ์ ๋ ฌ ๋ณด์
3. ํ๋์จ์ด ๊ฐ์ ํด๊ฒฐ์ฑ
์ ์ฅ์
- GPU ๊ฐ์์ผ๋ก ๋ ๋๋ง ์ฑ๋ฅ ํฅ์
- ํฝ์
๊ณ์ฐ์ ์ ํ๋ ๊ฐ์
- ๋ถ๋๋ฌ์ด ํฐํธ ๋ ๋๋ง
โจ ์๋กญ๊ฒ ๋ฐฐ์ด ์
- ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์ ์์์ ํฝ์
๊ณ์ฐ ๋ฐฉ์
- CSS ์์ฑ์ ์ธ๋ฐํ ์ ์ด ๋ฐฉ๋ฒ
- ํ๋์จ์ด ๊ฐ์์ ํ์ฉํ ์ต์ ํ ๊ธฐ๋ฒ
๐ ์ด๋ฐ ์ ์ด ํจ์จ์ ์ด์์
- ์ฌ๋ฌ ํด๊ฒฐ์ฑ
์ ์ํฉ์ ๋ง๊ฒ ์กฐํฉ ๊ฐ๋ฅ
- ์ฑ๋ฅ๊ณผ ์๊ฐ์ ํ์ง ๋ชจ๋ ๊ฐ์
- ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํธํ์ฑ ํ๋ณด
- ํ๋์จ์ด ๊ฐ์์ผ๋ก ์ฑ๋ฅ ์ต์ ํ
โญ๏ธ ์ฐธ๊ณ ์๋ฃ
- CSS Box Model ๋ช
์ธ
- ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ํ๋ก์ธ์ค
- GPU ๊ฐ์๊ณผ CSS ์ฑ๋ฅ ์ต์ ํ ๊ฐ์ด๋