CSS Grid Layout Guidebook
  • 레이아웃 디자인
  • 웹 레이아웃 기술 발전사
  • CSS Grid 기술 개발 이야기
  • CSS Grid 레이아웃 모듈
  • 한 눈에 살펴보는 Grid 용어
  • 거꾸로 살펴보는 그리드
  • CSS Grid 사용 가이드
    • CSS Grid 속성 요약
    • Grid 컨테이너
    • Grid 아이템
    • Grid 템플릿 행/열
    • Grid 템플릿 영역
    • Grid 템플릿 속기형
    • Grid 거터
    • Grid 아이템 배치
      • 라인 기반
      • 영역 기반
      • 순서 정렬
    • Grid 정렬
      • justify-content
      • align-content
      • justify-items
      • align-items
      • justify-self
      • align-self
    • Grid 트랙 크기 자동 설정
    • Grid 자동 흐름 설정
    • Grid 자동 반복 채움/맞춤
    • Grid 자동 배치 패킹 설정
    • Grid 속기형 속성
    • fr 단위
    • repeat() 함수
    • minmax() 함수
  • CSS Grid 활용 가이드
    • 정형 그리드 레이아웃
      • Gallery Grid
      • 12 Column System
      • 3 Column Grid
    • 비정형 그리드 레이아웃
      • Wanderlust Life Jewellery
      • Rel Acoustics
  • Box 정렬 가이드
  • IE를 위한 개발 환경 구성
    • CSS Grid 호환성 테이블
    • Grid × IE 참고노트
    • 개발도구 레퍼런스
  • CSS Grid 레퍼런스
  • 키노트 | 컨퍼런스 2018
  • 앤디 클락의 CSS Grid 레이아웃
Powered by GitBook
On this page
  • Drakmoon UI Kit
  • CSS Grid로 구현한 3컬럼 레이아웃
  • 크로스 브라우징 (IE)
  1. CSS Grid 활용 가이드
  2. 정형 그리드 레이아웃

3 Column Grid

Previous12 Column SystemNext비정형 그리드 레이아웃

Last updated 6 years ago

Drakmoon UI Kit

Drakmoon UI Kit은 3개의 컬럼 그리드를 사용하는 레이아웃 입니다. 컬럼 사이에는 동일한 간격의 공간(gutters) 또한 가지고 있습니다.

물론 3 컬럼 그리드로 레이아웃을 구현할 수도 있습니다만, 앞서 다룬 12 컬럼 그리드 시스템을 활용할 수도 있습니다.

CSS Grid로 구현한 3컬럼 레이아웃

레이아웃에 초점을 두고 12컬럼 그리드 시스템을 활용하여 제작해 본 Darkmoon UI Kit 결과를 살펴볼 수 있습니다.

다소 복잡해보였던 레이아웃에 비해 구조를 이루는 마크업은 매우 간결합니다. 그리드 컨테이너와 나머지는 모두 그리드 아이템 입니다. 요구되는 레이아웃 위치에 배치하기 위한 그리드 시스템 클래스 속성을 추가합니다.

<div class="grid">
  <div class="item col-8">Men’s style, Clothing</div>
  <div class="item col-4">Photo</div>
  <div class="item col-4 row-2">Latest News</div>
  <div class="item col-8">Movies, Actors, Celebrities</div>
  <div class="item col-4">What Makes a City</div>
  <div class="item col-4">Home Decorating Ideas</div>
  <div class="item col-8">Ultra NOIR</div>
  <div class="item col-4 row-2">Alexander McQueen</div>
  <div class="item col-8">Popular News</div>
  <div class="item col-4">Horses &amp; ponies</div>
  <div class="item col-8">Summer 2016</div>
  <div class="item col-4">Categories</div>
  <div class="item col-4 row-2">Latest Comments</div>
  <div class="item col-4 row-2">Calendar</div>
  <div class="item col-4">Follow Us</div>
  <div class="item col-4">Normandie Amenagement 20 years</div>
  <div class="item col-4 row-2">VICTORINOX ARCHOTECTURE URBAN</div>
  <div class="item col-4 row-2">The Food Field</div>
  <div class="item col-4">Normandie Amenagement 20 years</div>
  <div class="item col-4">GRAFIC DESING</div>
  <div class="item col-4">PHOTO</div>
  <div class="item col-4">photo by Alex Green</div>
  <div class="item col-4">WANDERLUST LIP &amp; EYE COLLECTION</div>
  <div class="item col-4">WANDERLUST LIP &amp; EYE COLLECTION</div>
  <div class="item col-4">WANDERLUST LIP &amp; EYE COLLECTION</div>
  <div class="item col-3">Andrew Kos</div>
  <div class="item col-3">The Kurieitā Movement</div>
  <div class="item col-3">PHOTO</div>
  <div class="item col-3">Spinnaker West</div>
  <div class="item col-full">PAGENATION</div>
</div>

12 컬럼 그리드 시스템을 사용하고 있기 때문에 최종적으로 완성 코드는 다음과 같이 나옵니다. 컬럼을 3개로 나눠 제작한다면 보다 코드가 간결 해질 수도 있습니다.

.grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: 14rem repeat(9, 13rem) repeat(2, 11rem) 9rem 4rem;
  grid-gap: 10px;
}

.grid .col-1  { grid-column-end: span 1;  }
.grid .row-1  { grid-row-end: span 1;     }
.grid .col-2  { grid-column-end: span 2;  }
.grid .row-2  { grid-row-end: span 2;     }
.grid .col-3  { grid-column-end: span 3;  }
.grid .row-3  { grid-row-end: span 3;     }
.grid .col-4  { grid-column-end: span 4;  }
.grid .row-4  { grid-row-end: span 4;     }
.grid .col-5  { grid-column-end: span 5;  }
.grid .row-5  { grid-row-end: span 5;     }
.grid .col-6  { grid-column-end: span 6;  }
.grid .row-6  { grid-row-end: span 6;     }
.grid .col-7  { grid-column-end: span 7;  }
.grid .row-7  { grid-row-end: span 7;     }
.grid .col-8  { grid-column-end: span 8;  }
.grid .row-8  { grid-row-end: span 8;     }
.grid .col-9  { grid-column-end: span 9;  }
.grid .row-9  { grid-row-end: span 9;     }
.grid .col-10 { grid-column-end: span 10; }
.grid .row-10 { grid-row-end: span 10;    }
.grid .col-11 { grid-column-end: span 11; }
.grid .row-11 { grid-row-end: span 11;    }
.grid .col-full { grid-column: 1 / 6;     }

크로스 브라우징 (IE)

.grid {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: (1fr)[12];
      grid-template-columns: repeat(12, 1fr);
  -ms-grid-rows: 14rem (13rem)[9] (11rem)[2] 9rem 4rem;
      grid-template-rows: 14rem repeat(9, 13rem) repeat(2, 11rem) 9rem 4rem;
  grid-gap: 10px;
}

.grid .col-1 {
  -ms-grid-column-span: 1;
  grid-column-end: span 1;
}
.grid .row-1 {
  -ms-grid-row-span: 1;
  grid-row-end: span 1;
}
.grid .col-2 {
  -ms-grid-column-span: 2;
  grid-column-end: span 2;
}
.grid .row-2 {
  -ms-grid-row-span: 2;
  grid-row-end: span 2;
}
.grid .col-3 {
  -ms-grid-column-span: 3;
  grid-column-end: span 3;
}
.grid .row-3 {
  -ms-grid-row-span: 3;
  grid-row-end: span 3;
}
.grid .col-4 {
  -ms-grid-column-span: 4;
  grid-column-end: span 4;
}
.grid .row-4 {
  -ms-grid-row-span: 4;
  grid-row-end: span 4;
}
.grid .col-5 {
  -ms-grid-column-span: 5;
  grid-column-end: span 5;
}
.grid .row-5 {
  -ms-grid-row-span: 5;
  grid-row-end: span 5;
}
.grid .col-6 {
  -ms-grid-column-span: 6;
  grid-column-end: span 6;
}
.grid .row-6 {
  -ms-grid-row-span: 6;
  grid-row-end: span 6;
}
.grid .col-7 {
  -ms-grid-column-span: 7;
  grid-column-end: span 7;
}
.grid .row-7 {
  -ms-grid-row-span: 7;
  grid-row-end: span 7;
}
.grid .col-8 {
  -ms-grid-column-span: 8;
  grid-column-end: span 8;
}
.grid .row-8 {
  -ms-grid-row-span: 8;
  grid-row-end: span 8;
}
.grid .col-9 {
  -ms-grid-column-span: 9;
  grid-column-end: span 9;
}
.grid .row-9 {
  -ms-grid-row-span: 9;
  grid-row-end: span 9;
}
.grid .col-10 {
  -ms-grid-column-span: 10;
  grid-column-end: span 10;
}
.grid .row-10 {
  -ms-grid-row-span: 10;
  grid-row-end: span 10;
}
.grid .col-11 {
  -ms-grid-column-span: 11;
  grid-column-end: span 11;
}
.grid .row-11 {
  -ms-grid-row-span: 11;
  grid-row-end: span 11;
}
.grid .col-full {
  -ms-grid-column: 1;
  -ms-grid-column-span: 5;
  grid-column: 1 / 6;
}

IE 10+ 브라우저에서도 레이아웃이 무너지지 않고 올바르게 작동 시키려면 IE에서 적용 가능한 코드(-ms-)가 추가적으로 필요합니다. 다음 코드는 도구를 사용해 자동으로 생성된 것입니다.

Darkmoon UI Kit - UI KitsUI8
3 컬럼 레이아웃 디자인 | Darkmoon UI Kit
CSS Grid ProjectKit for IE
12 컬럼 그리드를 사용하여 3 컬럼 레이아웃 디자인
Logo