긴 페이지를 최적화하는 CSS의 마법 ✨
content-visibility: auto를 사용하면 화면 밖의 콘텐츠 렌더링을 스킵해서 페이지 성능을 개선할 수 있어요!
웹 페이지가 길어질수록 렌더링 성능이 떨어지는 건 어쩔 수 없는 일이었죠. 하지만 이제는 content-visibility 속성으로 이 문제를 해결할 수 있습니다!
visible (기본값) - 일반적인 렌더링auto - 화면에 보이지 않는 콘텐츠는 렌더링 스킵hidden - display: none과 비슷하지만 렌더링 상태를 보존contain-intrinsic-size는 요소의 "예상 크기"를 브라우저에게 알려주는 속성이에요. 이게 왜 필요할까요?
/* 이렇게만 하면 스크롤이 막 움직여요! */
section {
content-visibility: auto;
}
content-visibility: auto만 사용하면 화면 밖 콘텐츠가 렌더링되지 않아서 높이가 0이 됩니다. 그래서:
section {
content-visibility: auto;
contain-intrinsic-size: auto 500px; /* 여기가 포인트! */
}
contain-intrinsic-size로 "이 요소는 대충 500px 높이가 될 거야~"라고 브라우저에게 알려주면:
section {
content-visibility: auto;
contain-intrinsic-size: auto 500px;
}
contain-intrinsic-size를 함께 사용하면 스크롤 바가 움직이지 않아요!
.hidden > p {
content-visibility: hidden;
contain-intrinsic-size: 0 1.1em;
}
display: none 대신 사용하면 다시 보여줄 때 렌더링이 더 빨라요 🏃♂️
aria-hidden="true" 필요contain-intrinsic-size 설정 필수