CSS 레이아웃 기초

CSSBeginner
지금 연습하기

소개

CSS 레이아웃 기초 실습에 오신 것을 환영합니다! 이 실습에서는 컨테이너 내의 항목들을 효율적으로 배치, 정렬 및 공간을 분배하는 강력한 레이아웃 모델인 CSS Flexbox 의 기본 사항을 탐구합니다.

이 실습 전반에 걸쳐 미리 구성된 HTML 파일 (index.html) 과 CSS 파일 (style.css) 을 사용하게 됩니다. 여러분의 임무는 style.css 파일을 수정하여 페이지의 요소 레이아웃을 조작하는 것입니다. 실습 환경의 Web 8080 탭으로 전환하여 변경 사항을 실시간으로 확인할 수 있습니다.

다음과 같은 내용을 배우게 됩니다:

  • 플렉스 컨테이너 초기화하기.
  • justify-content를 사용하여 주 축 (main axis) 을 따라 항목 정렬하기.
  • align-items를 사용하여 교차 축 (cross axis) 을 따라 항목 정렬하기.
  • flex-direction으로 레이아웃 방향 변경하기.
  • flex-wrap을 사용하여 항목을 여러 줄로 줄 바꿈하기.

시작해 봅시다!

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 98%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

컨테이너 요소에 display flex 설정하기

이 단계에서는 일반적인 블록 레벨 요소를 플렉스 컨테이너로 변환하는 것부터 시작합니다. 이는 모든 플렉스박스 레이아웃을 만드는 기초 단계입니다.

display: flex; 속성은 부모 요소 (컨테이너) 에 적용되어 모든 직계 자식 요소 (아이템) 에 대해 플렉스 컨텍스트를 활성화합니다. 적용되면 자식 요소들은 자동으로 행 (row) 으로 정렬됩니다.

먼저 화면 왼쪽의 파일 탐색기에서 style.css 파일을 엽니다.

다음으로 .container CSS 규칙을 찾습니다. 이 규칙 안에 display: flex; 속성을 추가합니다.

.container {
  border: 2px solid #333;
  padding: 10px;
  margin-top: 20px;
  background-color: #f0f0f0;
  /* We will add flex properties here */
  display: flex;
}

코드를 추가한 후 파일을 저장합니다. 이제 Web 8080 탭으로 전환하여 결과를 확인합니다. 이전에 수직으로 쌓여 있던 번호가 매겨진 상자들이 이제 단일 행으로 가로 정렬된 것을 볼 수 있습니다.

container tag

justify-content 속성으로 space-between 사용하기

이 단계에서는 justify-content 속성을 사용하여 주 축 (기본적으로 수평) 을 따라 항목들의 정렬을 제어하는 방법을 배웁니다. 이 속성은 컨테이너 내의 남은 여유 공간을 분배하는 데 도움이 됩니다.

space-between 값을 사용할 것이며, 이는 항목들을 균등하게 분배합니다. 첫 번째 항목은 컨테이너의 시작 부분에 위치하고, 마지막 항목은 끝 부분에 위치하며, 나머지 공간은 항목들 사이에 균등하게 분배됩니다.

style.css 파일에서 .container 규칙에 justify-content: space-between; 속성을 추가합니다.

.container {
  border: 2px solid #333;
  padding: 10px;
  margin-top: 20px;
  background-color: #f0f0f0;
  display: flex;
  justify-content: space-between;
}

파일을 저장하고 Web 8080 탭을 확인합니다. 플렉스 항목들이 이제 컨테이너의 전체 너비에 걸쳐 퍼져 있으며, 항목들 사이에 균등한 간격이 있는 것을 볼 수 있습니다.

container tag

align-items 속성으로 center 적용하기

이 단계에서는 align-items 속성을 사용하여 교차 축 (기본적으로 수직) 을 따라 항목들을 정렬하는 방법을 배웁니다.

수직 정렬의 효과를 보기 위해 먼저 컨테이너에 높이를 지정해야 합니다. 그런 다음 align-itemscenter 값을 사용하여 항목들을 컨테이너 내에서 수직으로 가운데 정렬할 것입니다.

style.css 파일에서 .container 규칙에 heightalign-items: center; 속성을 추가합니다.

.container {
  border: 2px solid #333;
  padding: 10px;
  margin-top: 20px;
  background-color: #f0f0f0;
  display: flex;
  justify-content: space-between;
  height: 200px;
  align-items: center;
}

파일을 저장하고 Web 8080 탭에서 결과를 확인합니다. 이제 컨테이너가 더 높아졌으며, 모든 플렉스 항목들이 수직 공간의 중앙에 완벽하게 가운데 정렬되었습니다.

flex-direction 속성으로 column 구현하기

이 단계에서는 flex-direction 속성을 사용하여 주 축의 방향을 수평에서 수직으로 변경합니다.

기본적으로 플렉스 방향은 row입니다. 이를 column으로 설정하면 플렉스 항목들을 수직으로 쌓을 수 있습니다. 플렉스 방향을 column으로 변경하면 주 축이 수직이 되고 교차 축이 수평이 됩니다. 이는 justify-content가 이제 수직 정렬을 제어하고, align-items가 수평 정렬을 제어한다는 것을 의미합니다.

style.css 파일에서 .container 규칙에 flex-direction: column; 속성을 추가합니다.

.container {
  border: 2px solid #333;
  padding: 10px;
  margin-top: 20px;
  background-color: #f0f0f0;
  display: flex;
  justify-content: space-between;
  height: 400px; /* 더 나은 시각화를 위해 높이를 늘립니다 */
  align-items: center;
  flex-direction: column;
}

참고: column 레이아웃에서 justify-content의 효과를 더 잘 보기 위해 높이를 400px로 늘렸습니다.

파일을 저장하고 Web 8080 탭에서 변경 사항을 관찰합니다. 항목들이 이제 단일 열로 쌓입니다. justify-content: space-between이 이제 항목들 사이에 수직으로 공간을 추가하고, align-items: center가 항목들을 수평으로 가운데 정렬하는 것을 확인합니다.

flex-wrap 속성으로 wrap 추가하여 줄 바꿈하기

이 마지막 단계에서는 플렉스 항목들이 컨테이너를 넘치는 경우를 처리하는 방법을 배웁니다. flex-wrap 속성은 항목들이 축소되거나 넘치는 대신 새 줄로 줄 바꿈되도록 허용합니다.

이를 시연하기 위해 이전 단계의 행 기반 레이아웃으로 되돌리고, 모든 항목을 한 줄에 담기에는 너무 좁은 컨테이너에 고정된 너비를 설정할 것입니다.

먼저, 이전 단계의 속성들 (justify-content, align-items, flex-direction, height) 을 제거하여 .container 규칙을 정리합니다. 그런 다음 고정된 widthflex-wrap: wrap; 속성을 추가합니다.

style.css에서 .container 규칙을 다음과 같이 업데이트합니다.

.container {
  border: 2px solid #333;
  padding: 10px;
  margin-top: 20px;
  background-color: #f0f0f0;
  display: flex;
  width: 450px; /* 줄 바꿈을 강제하기 위해 고정 너비 설정 */
  flex-wrap: wrap;
}

파일을 저장하고 Web 8080 탭을 새로고침합니다. 첫 번째 줄에 맞지 않는 플렉스 항목들이 두 번째 줄로 줄 바꿈된 것을 볼 수 있습니다. 이는 다양한 화면 크기에 적응하는 반응형 레이아웃을 만드는 데 필수적입니다.

container tag

요약

CSS 레이아웃 기초 실습을 완료하신 것을 축하드립니다! CSS Flexbox 의 핵심 개념을 성공적으로 학습하고 이를 적용하여 유연하고 반응형인 레이아웃을 만들었습니다.

이 실습에서는 다음을 연습했습니다.

  • display: flex;: 플렉스 컨테이너를 생성합니다.
  • justify-content: 주 축을 따라 항목을 정렬합니다.
  • align-items: 교차 축을 따라 항목을 정렬합니다.
  • flex-direction: 주 축의 방향 (행 또는 열) 을 정의합니다.
  • flex-wrap: 항목이 여러 줄로 줄 바꿈되도록 허용합니다.

이러한 속성들은 현대 웹 디자인의 구성 요소입니다. Flexbox 에 대한 이해를 더욱 공고히 하기 위해 이러한 속성들의 다양한 값으로 계속 실험해 보시기를 권장합니다.