PHP 마법 학교 4기 2강: 내 맘대로 배치하기! ‘공간 이동 마법 Flexbox’

안녕하세요! 가족과 함께하는 스마트 라이프입니다. 지난 시간에는 CSS 마법으로 웹사이트에 알록달록한 옷을 입히는 법을 배웠죠? 오늘은 웹사이트의 요소들을 원하는 곳으로 자유롭게 이동시키고 정렬하는 아주 강력한 기술, ‘공간 이동 마법 Flexbox’를 배워보겠습니다. 이 마법만 알면 게시판 목록이나 메뉴를 자로 잰 듯 반듯하게 정렬할 수 있어요!

PHP 마법 학교 4기 2강: 내 맘대로 배치하기! '공간 이동 마법 Flexbox'

1. Flexbox란 무엇인가요? ‘유연한 마법 상자’

지금까지는 글을 쓰면 무조건 위에서 아래로 차례대로 쌓였죠? 하지만 Flexbox 마법을 부리면 상자 안의 물건들을 가로로 나란히 세우거나, 정중앙에 배치하거나, 양 끝으로 밀어낼 수도 있어요. ‘Flexible Box’의 줄임말인 만큼, 화면 크기에 맞춰 유연하게 변하는 것이 특징이랍니다.

2. 가로로 나란히 정렬하기 (코드)

부모 상자에게 display: flex;라는 주문을 내리면, 그 안의 자식 요소들이 즉시 반응합니다. 게시판의 ‘번호, 제목, 작성자’ 칸을 나란히 배치하는 원리를 살펴볼까요?

<!DOCTYPE html>
<html>
<head>
  <style>
    /* 1. 마법 상자(부모) 설정 */
    .magic-container {
      display: flex;
      background-color: #f0f0f0;
      padding: 10px;
      border: 2px dashed #999;
      
      /* 자식들을 양 끝으로 벌려라! */
      justify-content: space-between;
      
      /* 높이의 정중앙에 맞춰라! */
      align-items: center;
    }

    /* 2. 상자 안의 물건들(자식) 스타일 */
    .item {
      background-color: #ffcc00;
      padding: 15px;
      border-radius: 10px;
      font-weight: bold;
    }
  </style>
</head>
<body>
  <h2>📦 Flexbox 공간 이동 마법</h2>
  
  <div class="magic-container">
    <div class="item">마법사 번호</div>
    <div class="item">주문 제목</div>
    <div class="item">작성자</div>
  </div>
</body>
</html>

3. 꼭 기억할 두 가지 방향 주문

Flexbox 마법사들은 이 두 가지 주문을 가장 많이 써요!
1. justify-content: 가로(메인축) 방향으로 어떻게 배치할지 정해요. (가운데 모으기, 양 끝으로 벌리기 등)
2. align-items: 세로(교차축) 방향으로 어떻게 배치할지 정해요. (위로 붙이기, 아래로 내리기, 가운데 맞추기 등)
이 두 가지만 조합하면 화면 정중앙에 버튼을 놓는 일도 식은 죽 먹기랍니다!

[IMAGE_2]

4. 아이들과 함께하는 ‘장난감 기차 정렬’ 놀이

아이와 함께 거실 바닥에 긴 테이프로 기차 선로(Container)를 그려보세요. 그리고 기차 칸(Item)들을 선로 위에 놓게 하세요. 아빠가 “justify-content: center!”라고 외치면 아이가 기차 칸들을 선로 한가운데로 모으고, “space-between!”이라고 외치면 양 끝으로 벌리게 하는 놀이를 해보세요. 눈에 보이지 않는 정렬 알고리즘을 몸으로 익히는 최고의 방법입니다.

마치며: 조화로운 디자인의 완성

공간 이동 마법 덕분에 우리 웹사이트가 훨씬 정돈되어 보이게 되었습니다! 이제 어떤 요소든 원하는 위치에 척척 놓을 수 있겠죠? 다음 시간에는 마법 학교의 이미지를 더 생생하게 만들어주는 ‘그림자와 둥근 모서리 마법(Box-shadow & Border-radius)’을 배워보겠습니다. 더 입체적인 웹사이트를 만들어 볼까요? 다음 시간에 만나요!