반응형
CSS 스타일 속성에 따라 리플로우(reflow)가 발생할 수도 있고 발생하지 않을 수도 있습니다. 리플로우는 요소의 크기, 위치 또는 구조가 변경될 때 브라우저가 해당 변경 사항을 계산하고 적용하는 프로세스를 말합니다. 리플로우는 성능에 영향을 주므로 최소화하는 것이 중요합니다.
리플로우가 일어나는 주요 CSS 속성에는 다음과 같은 것들이 있습니다:
- width, height: 요소의 크기를 변경할 때 리플로우가 발생합니다.
- padding, margin: 패딩과 마진을 변경하면 요소의 크기와 위치가 변경되므로 리플로우가 발생합니다.
- position: absolute, fixed: 절대 위치나 고정 위치로 요소를 배치하면 주변 요소의 배치가 변경되므로 리플로우가 발생합니다.
- display: none: 요소를 숨기는 경우에는 리플로우가 발생하지 않지만, 다시 표시되는 경우에는 리플로우가 발생합니다.
- float: 요소를 부유(floating)시키면 주변 요소의 배치가 변경되므로 리플로우가 발생합니다.
반면에 다음과 같은 CSS 속성들은 일반적으로 리플로우를 유발하지 않습니다:
- color, background-color: 텍스트나 배경색을 변경하더라도 리플로우가 발생하지 않습니다.
- font-size, font-weight: 글꼴 크기나 굵기를 변경해도 리플로우가 발생하지 않습니다.
- text-align: 텍스트의 정렬을 변경해도 주변 요소에 영향을 주지 않으므로 리플로우가 발생하지 않습니다.
- visibility: hidden: 요소를 숨기는 경우에도 리플로우가 발생하지 않습니다.
- transform: 2D나 3D 변형을 적용해도 리플로우가 발생하지 않습니다.
이는 일반적인 규칙이며, 브라우저의 구현에 따라 동작이 다를 수 있습니다. 따라서 가능한한 리플로우가 발생하는 속성을 최소화하고, 효율적인 CSS 작성을 위해 CSS 성능을 고려하는 것이 좋습니다.
반응형
'개발관련 > 프론트엔드 지식' 카테고리의 다른 글
styled-components와 Tagged Template Literals styled-components는 어떻게 style을 만들까 (0) | 2023.08.09 |
---|---|
Styled-Components의 특징 (0) | 2023.08.09 |
OWASP Top 10: 웹 애플리케이션 보안 취약점 (0) | 2023.07.09 |
프론트 엔드 면접 관련 공부 (0) | 2023.05.11 |
Next.js 이 4가지는 뭐가 다를까요? 🤔 getInitialProps / getServerSideProps / getStaticPaths / getStaticProps (0) | 2023.04.25 |