Flexbox로 CSS 레이아웃을 쉽게 배치하는 방법

Flexbox로 CSS 레이아웃을 쉽게 배치하는 방법
Cozy CodingPosted On Aug 26, 20245 min read

그것은 무서운 밤이었습니다. CSS의 신께서 배경 색을 '회색'으로 설정하고 대부분의 것들에게 'display: none'을 주셨습니다. 시계가 A...M으로 하품을 시작했고, 어둡고 공허한 밤 속에서 Flexbox는 긴박한 정렬 작업과 콘텐츠 정의 날 끝낸 후 홀로 바쁘게 집으로 향하고 있었습니다. 그는 두려워했습니다. 그는 이 지역과 특히 이 거리에 대한 많은 소문을 들었지만 결코 믿지는 않았습니다.

Flexbox는 과학을 믿었습니다. 그는 세상이 상자 모델의 법칙에 의해 통제된다는 것을 알았습니다. 주변 대부분의 사람들은 이 상자 모델의 법칙이 Jesus Webdev라는 신이 세운 것이라고 믿었지만, Flexbox는 무신론자적인 신봉자였습니다. 그는 삶에 목적이나 의미가 없다고 믿었습니다. '축소-확장-감싸기-반복', 그것이 그가 알고 있는 삶의 전부였습니다.

Flexbox는 항상 유령 개념과 그것을 믿는 사람들을 경멸했습니다. 그러나 배경 색상이 어둡고 더 많은 것들이 display: none으로 사라지자, Flexbox는 자신의 믿음에 의문을 품기 시작했습니다.

이런 밤에는 유령의 존재에 대해 곰곰히 생각하기 좋은 때가 아닐지도 몰라요. Flexbox는 많은 무신론자 친구들이 이런 상황에서 신을 찾는 것을 보았습니다. 그는 다른 것에 대해 생각하며 자신을 현혹시키려고 노력했어요.

Flexbox는 측정 가능한 과거를 가지고 있었어요. 학교에서는 친구들에게 선하다고 괴롭힘을 당했던 것을 기억합니다. 동료들은 그를 '베타'라고 놀렸죠. 그러나 명확한 이유로 날짜를 만드는 데는 문제가 없었지만 의미 있는 관계를 맺기는 힘들었어요. 누군가가 가까워지자마자 그는 마진과 패딩을 늘리기 시작했습니다. 사무실에서 그 옆에는 그리드라는 여자가 있었습니다. 그녀를 정말 좋아했지만 문제는 그녀가 지나치게 깔끔했단 거예요. 그녀는 비대칭을 싫어했죠. 반면에 Flexbox는 그런 것에 대해 생각을 거의 안 했던 것을 알았습니다. 그는 스스로를 아주 잘 알았어요. 그는 문제를 해결하기보다는 문제의 일부가 되는 게 나았죠. 그래서 그들의 관계는 친구 이상으로 발전하지 않았습니다. 나중에 Flexbox는 그리드가 실제로 테이블이라는 남자와 관계가 있었다는 사실을 알았어요. 그래서 Flexbox는 그녀를 포기하기로 결정했죠.

박쥐가 그의 위를 훨씬 지나치며 거의 머리에 부딪칠 뻔했습니다. Flexbox는 잠시 마음이 멈춘 것 같았어요. 주변을 둘러보았어요. 지금은 완전히 어둡네요. 그의 다리에 어떤 종류의 기억이 있을지 궁금해졌어요. 그는 그런 어둠 속에서 거의 집으로 오는 길 절반을 이동해왔습니다. 시계를 확인했어요. 벌써 자정 넘었습니다. 그는 걸음을 재촉했어요. 침묵이 두려움을 부추기고 그의 부츠는 연설자 역할을 했어요. 갑자기 무언가가 그의 발 아래에 끼어들었고 그는 전율했습니다. 그의 손은 어떤 지지물을 찾으려고 했지만 실패했습니다. 마침내 그의 다리가 포기하고 그는 땅에 넘어졌어요.

Flexbox가 땅에 떨어지자, 조심스럽게 유지해 온 구조가 무너지는 것을 느꼈습니다. 잠시 그가 어둠의 거리에 널브러져 있을 때, 제대로 정렬되지 않은 div 세트처럼 보였습니다.

그럼, 다음과 같이 Markdown 형식으로 테이블 태그를 변경하실 수 있습니다:

Header 1Header 2
Row 1Data 1
Row 2Data 2

블록은 기분 좋게 웃었습니다. 소리에 Flexbox의 등골이 오싹해졌어요. "폐기되었어요? 음, 너희 모던 레이아웃들은 자신들이 아주 똑똑하다고 생각하는군. 그러나 우리 중 일부는... 우리는 결코 완전히 사라지지 않아." 블록은 자신을 'return' 이후의 JavaScript 코드처럼 생각했습니다. 그 코드는 도달할 수 없는 것으로 여겨졌기 때문에.

블록이 나타나자 Flexbox는 숨을 들이쉬었습니다. 블록은 홀로 있는 게 아니었습니다. 그 뒤에는 Table, Float, 그리고 무서운 Inline-Block조차 있었습니다.

"무슨 문제야, Flexbox?" Table Layout이 비웃었습니다. "이 작은 구조를 다루지 못 하고 있어?"

Flexbox는 당당하게 서려고 했지만 자신의 자신감이 흐려지는 걸 느꼈습니다. "여러분, 싸울 필요 없어요. CSS 세계에 우리 모두가 함께 있을 자리가 있잖아요. 우리 그냥... 공존할 수 없을까요?"

Float는 거친 소리를 내며 웃었습니다. 그 소리는 어둠 가득한 거리에 울렸어요. "공존을 하자고요? 몇 년 동안 우리를 쫓아내려 애쓰고 있었잖아요! 이제는 진짜 레이아웃 파워가 어떤 것인지 보여줄 차례입니다!"

고전 레이아웃의 무리가 가까이 다가오자, Flexbox는 결의가 약해지는 것을 느꼈습니다. 눈을 감고 충격에 대비했어요. 그런데 모든 희망이 사라진 것처럼 보였을 때, 빛나는 빛이 어둠을 가르고 들어왔어요.

"거기 멈춰요!" 강한 목소리가 울려 퍼졌어요.

Flexbox는 눈을 활짝 떴어요. 거리 위를 떠 다니면서 그리드에 총명함이 넘쳐나는 그녀가 그랬어요.

“G-Grid?” Flexbox exclaimed in surprise. Grid smiled back at Flexbox and then locked eyes with Table. Table felt the intensity in her gaze and took a step back.

Flexbox mumbled, “I thought you were on Table's side?”

Grid rolled her eyes. “Come on. That was just a phase. Now, are we going to show these outdated layouts how it’s done or what?”

As Grid stood by his side, getting ready to confront the old layouts, Flexbox felt his confidence returning. Block scoffed, “Two against four? You don’t stand a chance!”

갑자기 한 명이 위에서 외쳤어요, "세 명으로 바꿔주세요!" 포근한 망토를 입은 모습이 하늘에서 내려와, Flexbox와 Grid 사이에 멋있게 착지했어요.

"CSS-맨!" 모두가 한꺼번에 소리쳤죠.

웹 디자인의 전설적인 슈퍼히어로인 CSS-맨은 자세를 취했어요. "레이아웃 동네에 문제가 있다고 듣고 왔어요. 속성 기반의 전투를 위해 시간도 딱 맞춰 도착한 것 같네요!"

Block Element가 돌진했지만, CSS-맨은 눈썹만 들어 올려서 "Transform: rotate(180deg)!"라고 선언했어요. Block은 둥글둥글 돌아가면서 어지러워하며 혼란스러워졌어요.

테이블 레이아웃은 복잡한 중첩 구조로 그들을 갇으려 했지만, 그리드는 단순히 웃었습니다. “제가 그런 복잡한 레이아웃을 아침밥으로 먹어버려요!” 손을 휘두르는 것만으로 테이블의 셀들을 아름다운 모자이크로 재배치했답니다.

플로트는 떠나려 했지만 플렉스박스가 더 빨랐어요. “아니야, 너는 안 돼! Align-items: center!” 그가 공중에 떠다니는 플로트를 잡아다가 그 자리에 놓았어요.

인라인-블록은 상대에 비해 미치지 못한다는 것을 깨달았고, “Display: none” 해보려 했지만 CSS맨은 빠르게 그를 집어잡았어요.

먼지가 내려앉을 때, 옛날 레이아웃들의 무리는 자신들만의 구식 코드 속에서 패배하고 얽히고 말았어요.

"음, 그러면," CSS-맨이 망토를 털어내며 말했다, "잘 정리된 스타일 시트보다 더 깔끔하게 마무리된 것 같군요."

그리드는 눈 속에 빛이 나는 플렉스박스를 쳐다보며 말했습니다. "알았어, 플렉스박스, 나 우리 꽤 좋은 팀인 것 같아. 커피 한 잔 사러 가서 레이아웃 전략 좀 이야기해볼까?"

플렉스박스는 기쁨에 폭발할 것 같이 컨테이너가 커지며 부빗했습니다. "좋아, 좋아. 하지만 테이블은 어떻게 할 거에요? 너희 둘이 사이 좋은 줄 알았는데."

그리드는 웃었습니다. "이제, 그 관계는 인터넷 익스플로러만큼 안정적이지 않았어. 게다가, 나는 유연한 타입에 더 매력을 느꼈거든."

함께 걸어나가면서 CSS-Man이 그들 뒤에서 외쳤어요, "기억해, 친구들: 위대한 힘에는 위대한 반응이 따른다고!"

그때 숙취 중인 블록 요소가 일어나서 머리를 문지르며 말했어요. "어떻게 된 거죠? 누가 나한테 부딪힌 미디어 쿼리의 번호판을 확인했어요?"

CSS-Man이 웃으며 블록을 일으켜 세우면서 말했어요. "자, 노인아. 집에 데려다줄게. 우아한 저하에 대해 얘기해야 할 때인 것 같아."

그리고 해가 뜨기 시작함에 따라 배경 색상이 어두운 회색에서 따뜻한 주황색으로 변하는 시점에, 우리 영웅들은 웹 디자인의 새로운 하루에 서서히 떠나갔어요. 거리는 다시 한 번 현대적인 레이아웃에 안전하며, 어딘가에서 웹 개발자 한 명이 잠에서 깨어나, 자신의 스타일시트가 올바르게 렌더링될 것임을 당당히 모르고 다시 일어났답니다.

끝인가요... 아니죠? 웹 디자인 세계에서는 항상 새로운 업데이트가 바로 다가오고 있습니다!