본문 바로가기
FrontEnd/CSS

flexbox vs inline block

by Fathory 2024. 7. 18.

Flexbox를 사용하여 inline 요소를 표현하는 것과 display: inline-block을 사용하여 inline 요소를 표현하는 것의 성능 차이점을 알아보자

특성 Flexbox (display: inline-flex) Inline-Block (display: inline-block)
목적 컨테이너 내의 항목 배치 및 정렬 자체 크기 조정 및 다른 요소와 나란히 배치
레이아웃 가능 범위 강력한 정렬, 정당화, 순서 변경 등 제한적 (기본적인 정렬 및 마진만 가능)
부모 요소의 속성 상속 부모 요소의 속성을 상속받으며, 개별 설정이 가능함 각 요소는 독립적으로 설정됨
정렬 기능 지원 수평 및 수직 정렬 지원 수평 정렬만 가능
속성 설정 유연성 flex-grow, flex-shrink, flex-basis등 각 요소별 속성을 지원함 width와 height만 조정 가능함
자동 크기 조절 flex 속성을 통해 가능 크기 변경 수동 설정 필요
간격 설정  gap 속성으로 일괄 설정 margin으로 개별 설정
자동 줄바꿈, 정렬방향 등 지원여부 flex-direction으로 조정 가능 block 레벨 레이아웃을 통해서만 가능
지원 브라우저 최신 브라우저 대부분 지원 거의 모든 브라우저에서 지원
복잡한 레이아웃 유연하게 복잡한 레이아웃 구현 가능 복잡한 레이아웃 구현 어려움
성능 복잡한 레이아웃에서 약간의 오버헤드 상대적으로 성능 오버헤드 적음

 

성능 차이

  • Flexbox (display: inline-flex): 복잡한 레이아웃을 처리하는 강력한 기능을 제공하기 때문에, 브라우저의 계산이 더 많아질 수 있다. 특히, 많은 요소가 있는 복잡한 레이아웃에서는 성능 오버헤드가 발생할 수도 있다.
    하지만, 대부분의 경우 성능 차이는 거의 느껴지지 않거나 없다시피 하고, 최신 브라우저에서 최적화되어 있어 사용시에 성능상의 문제는 거의 발생하지 않는다.
  • Inline-Block (display: inline-block): 비교적 단순한 레이아웃 계산만 하기 때문에, 성능 오버헤드가 적다.
    많은 요소를 사용할 때도 성능 저하가 덜 발생한다.
    하지만 복잡한 레이아웃을 만들어내는 경우 코드가 길어지는 문제가 생길 수 있다.

결론

  • Flexbox는 유연하고 복잡한 레이아웃을 구현할 때 매우 유용하지만, 많은 요소를 포함하는 복잡한 레이아웃에서는 약간의 성능 오버헤드가 발생할 수 있다.
  • Inline-Block은 간단한 inline 배치가 필요할 때 사용할 수 있고, 성능 면에서 약간 더 유리할 수 있다.

실제 프로젝트에서는 성능 차이가 크지 않으므로, 레이아웃 요구사항에 따라 적절한 방법을 선택하는 것이 좋습니다. Flexbox가 제공하는 유연성과 강력한 기능은 대부분의 경우 성능 오버헤드를 상쇄할 만큼 가치가 있습니다.

반응형

'FrontEnd > CSS' 카테고리의 다른 글

Stacking Context? Stacking Order?  (0) 2020.11.05
CSS 전처리기의 종류와 장단점  (0) 2020.11.05