BIZINFO 레이블-값 페어에 grid 레이아웃 적용
목차
Post.astro 레이아웃에 BIZINFO 영역 스타일 작업을 했다. .view_cont > ul/li 페어에 grid를 적용하는 단순해 보이는 한 줄짜리 작업이었는데, 생각보다 짚어볼 게 있어서 남겨둔다.
왜 이 타이밍에 grid였나
기존 .view_cont 내부의 ul/li 구조는 아마도 별도 레이아웃 지정 없이 기본 block 흐름을 타고 있었을 거다. BIZINFO 같은 비즈니스 정보 섹션은 보통 레이블-값 페어를 나열하는 구조가 많다. 예를 들면 이런 식:
<ul>
<li>
<span class="label">대표자</span>
<span class="value">홍길동</span>
</li>
<li>
<span class="label">사업자번호</span>
<span class="value">000-00-00000</span>
</li>
</ul>
이걸 그냥 block으로 두면 레이블 길이가 제각각일 때 값 시작 위치가 들쭉날쭉해진다. float나 flex로 처리하던 시절도 있었지만, 이런 페어 구조에서 grid가 가장 깔끔하다. 특히 grid-template-columns: max-content 1fr 조합을 쓰면 레이블 너비를 내용 기준으로 자동 맞추면서 값은 나머지 공간을 채우는 구조를 최소한의 코드로 만들 수 있다.
.view_cont > ul {
display: grid;
}
.view_cont > ul > li {
display: grid;
grid-template-columns: max-content 1fr;
gap: 0 1rem;
}
물론 실제 적용 값은 디자인 스펙에 따라 다르겠지만, 페어 레이아웃에서 grid를 쓰는 패턴 자체는 거의 정석에 가깝다.
Post.astro 한 파일에 스타일이 들어가는 구조
변경 파일이 src/layouts/Post.astro 하나다. Astro 환경에서 레이아웃 컴포넌트에 직접 scoped style을 넣는 방식은 빠르고 직관적이다. 별도 CSS 파일로 분리하면 import 경로 관리가 필요하고, 전역 스타일시트에 넣으면 다른 레이아웃에 영향 줄 수 있으니까.
| 방식 | 장점 | 단점 |
|---|---|---|
Post.astro 내 <style> |
응집도 높음, scoped 보장 | 파일이 길어질 수 있음 |
| 별도 CSS 파일 분리 | 관리 편의성 | import 경로, 네임스페이스 관리 필요 |
| 전역 스타일시트 | 일괄 적용 쉬움 | 범위 통제 어려움, 사이드이펙트 위험 |
BIZINFO처럼 Post 레이아웃에서만 쓰이는 특정 섹션 스타일이라면 Post.astro 안에 두는 게 맞다. 스코프를 좁게 가져가는 게 나중에 다른 레이아웃 건드릴 때 두려움 없이 작업할 수 있는 기반이 된다.
스타일 작업에서 자주 놓치는 것
이런 류의 스타일 fix는 커밋 메시지만 보면 작아 보이지만, 사실 영향 범위를 확인하는 게 핵심이다.
.view_cont가 BIZINFO 말고 다른 섹션에도 쓰이고 있지 않은지ul/li셀렉터가 하위 중첩 구조에 의도치 않게 적용되지 않는지 (>직접 자식 선택자를 쓴 게 의도적일 것)- 모바일 breakpoint에서 grid column이 깨지는 경우는 없는지
> 선택자를 명시적으로 쓴 건 잘한 거다. 직접 자식만 잡으면 중첩된 하위 ul/li에 스타일이 튀는 걸 방지할 수 있다. 이 판단을 커밋 메시지에 .view_cont > ul/li 페어라고 명시한 것도 좋았다. 읽는 사람이 "아, 직접 자식 페어에만 grid 준 거구나"를 바로 알 수 있으니까.
스타일 작업은 "기능" 변경보다 덜 중요하게 취급받기 쉬운데, 이런 핀포인트 수정을 style(post): 접두사로 명확하게 분리해서 커밋한 게 맞는 방향이다. 기능 커밋과 스타일 커밋이 섞이면 리뷰할 때 맥락 파악이 훨씬 힘들어진다.
끝.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.