transform 속성으로 요소를 이동, 회전, 크기 변경, 기울이기 등 2D/3D 변형을 수행하고,
transition과 animation 속성으로 CSS 속성 변화와 복잡한 애니메이션 효과를 구현합니다.
Flexbox는 1차원 레이아웃 시스템으로, 컨테이너와 요소 속성을 활용하여
유연하고 반응형인 레이아웃을 구현합니다.
CSS Grid는 2차원 레이아웃 시스템으로 행과 열을 동시에 제어하며,
multi-column 속성으로 신문과 같은 다단 레이아웃을 구현합니다.
플렉서블 레이아웃 부모 속성 part2- by. UXKM
Publishing
CSS
CSS 고급
플렉서블 레이아웃 부모 속성 part2
요약 설명
Flex(Flexbox)는 CSS3에서 도입된 레이아웃 방식으로, 요소의 크기가 불명확하거나 동적으로 변화할 때에도 유연한 레이아웃을 구현할 수 있습니다.
플렉스 컨테이너(부모 요소)와 플렉스 요소(자식 요소)로 구성되며, display: flex 또는 display: inline-flex로 설정한 요소가 플렉스 컨테이너가 됩니다.
복잡한 레이아웃도 적은 코드로 간단하게 표현할 수 있으며, 다양한 화면 크기와 기기에서 요소들이 자동으로 재정렬되어 반응형 웹을 구현하는 데 유용합니다.
과거에는 float이 주로 사용되었지만, 현재는 flex 또는 grid가 주로 사용됩니다.
요약 설명
플렉서블 레이아웃 - 부모 속성 part 2에서는
justify-content
align-content
align-items에 대한 내용을 다루고 있습니다.
부모 속성(Properties for the Parent - Flexbox Container)
display: flex;를 설정한 요소입니다.
[Flexbox Container]
justify-content
justify-content 속성은 주축(main axis)을 따라 플렉스 요소를 정렬하는 방식을 설정합니다.
기본 값은 flex-start입니다.
플렉스 요소가 플렉스 컨테이너의 가운데에 배치됩니다. (Items를 가운데 정렬 항목이 선을 따라 중앙에 위치)
justify-content: center;
space-between
플렉스 요소 사이에 여유 공간을 두고 양쪽 끝에 마춰 배치됩니다.
(시작 Item은 시작점에, 마지막 Item은 끝점에 정렬되고 나머지 Items는 사이에 고르게 정렬됩니다. 라인에 균등하게 분배)
justify-content: space-between;
space-around
플렉스 요소의 양 옆에 동일한 여유 공간을 두고 배치됩니다.
(Items를 균등한 여백을 포함하여 정렬합니다. 항목은 동일한 간격으로 줄에 균등하게 분배)
justify-content: space-around;
space-evenly
플렉스 요소의 사이의 양쪽 간격이 동일하게 배치됩니다.
justify-content: space-evenly;
justify-content 예제
align-content
flex container의 교차 축(cross-axis)을 기준으로 flex item을 수직 정렬합니다.
참고로 justify-content 속성은 flex container의 main axis를 기준으로 flex item을 수평 정렬합니다.
주의할 점은 flex item이 한 줄일 경우 작동하지 않으며, 2줄 이상에 flex container에 여백이 있는 경우에만 의미가 있습니다.
또한 flex-wrap 속성에 nowrap이 선언되어 있으면 flex item이 한 줄로 정렬되기 때문에 이 경우에도 의미가 없습니다. flex item이 한 줄일 경우 align-items 속성을 사용해야 합니다.