개발관련/프론트엔드 지식

리플로우가 일어나는 css 스타일 속성과 일어나지 않는 스타일 속성이 무엇이 있나요?

개발자 Dane 2023. 7. 11. 20:44
반응형

CSS 스타일 속성에 따라 리플로우(reflow)가 발생할 수도 있고 발생하지 않을 수도 있습니다. 리플로우는 요소의 크기, 위치 또는 구조가 변경될 때 브라우저가 해당 변경 사항을 계산하고 적용하는 프로세스를 말합니다. 리플로우는 성능에 영향을 주므로 최소화하는 것이 중요합니다.

리플로우가 일어나는 주요 CSS 속성에는 다음과 같은 것들이 있습니다:

  1. width, height: 요소의 크기를 변경할 때 리플로우가 발생합니다.
  2. padding, margin: 패딩과 마진을 변경하면 요소의 크기와 위치가 변경되므로 리플로우가 발생합니다.
  3. position: absolute, fixed: 절대 위치나 고정 위치로 요소를 배치하면 주변 요소의 배치가 변경되므로 리플로우가 발생합니다.
  4. display: none: 요소를 숨기는 경우에는 리플로우가 발생하지 않지만, 다시 표시되는 경우에는 리플로우가 발생합니다.
  5. float: 요소를 부유(floating)시키면 주변 요소의 배치가 변경되므로 리플로우가 발생합니다.

반면에 다음과 같은 CSS 속성들은 일반적으로 리플로우를 유발하지 않습니다:

  1. color, background-color: 텍스트나 배경색을 변경하더라도 리플로우가 발생하지 않습니다.
  2. font-size, font-weight: 글꼴 크기나 굵기를 변경해도 리플로우가 발생하지 않습니다.
  3. text-align: 텍스트의 정렬을 변경해도 주변 요소에 영향을 주지 않으므로 리플로우가 발생하지 않습니다.
  4. visibility: hidden: 요소를 숨기는 경우에도 리플로우가 발생하지 않습니다.
  5. transform: 2D나 3D 변형을 적용해도 리플로우가 발생하지 않습니다.

이는 일반적인 규칙이며, 브라우저의 구현에 따라 동작이 다를 수 있습니다. 따라서 가능한한 리플로우가 발생하는 속성을 최소화하고, 효율적인 CSS 작성을 위해 CSS 성능을 고려하는 것이 좋습니다.

반응형