티스토리 뷰

CSS

CSS GRID

정낭고 2023. 7. 25. 15:04

Grid

 

 

Fraction

- 총 합에서 차지하는 비율(ex. 1fr)

- repeat 속성으로 줄여 쓰기

.container {
  display: grid;
/* 	grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
	grid-template-columns: repeat(10,1fr);
	grid-template-rows: repeat(3,100px);  */
	grid-template: repeat (3,100px)/repeat(2,1fr); /* 앞은 열/뒤는 줄 */
	grid-gap: 10px;
}

 

 

Positioning

.container {
    display: grid;
    grid-gap: 3px;
    grid-template-columns:repeat(12,1fr);   
		grid-template-rows: 40px 400px 40px;
}

.header {
	 	grid-column: 1/-1;
/*
	컬럼 라인 1-3까지
	grid-column-start:1;
	grid-column-end: 3;
	grid-column: 1/-1;
	
	컬럼라인 1번부터 2칸
	grid-colunm: 1/span 2;
	grid-colunm: span 2;  */
}

/* 메뉴 4컬럼 콘텐트 8컬럼 */
.menu {
	grid-column: span 4;
}

.content {
grid-column: span 8;
}

.footer {
	grid-column: 1/-1;
}

 

Named Lines

.container {
    height: 100%; 
    display: grid;
    grid-gap: 3px;
		grid-template-columns: [main-start] 1fr [content-start] 5fr [content-end main-end];
		grid-template-rows: [main-start] 40px [content-start] auto [content-end] 40px [main-end]; 
}
.header {
	/* grid-column: main-start/main-end; 
	이름이 같으면 줄여서 쓰는 거 가능 */		
		grid-column: main;
}
.content {
		grid-column: content;
}
.footer {   
		grid-column: main-start/main-end;
}

 

auto-fit / min max / auto-rows

auto-fit: 자동으로 칸에 맞게끔 채우기

minmax: 최소값 최대값으로 맞추기

auto-rows: 자동으로 줄 채우기

.container {
    display: grid;
    grid-gap: 5px;
    /* auto-fit: 자동으로 칸에 맞게끔 채워짐 */
    /* minmax: 최소값은 100px 커질땐 1fr */
    grid-template-columns: repeat(auto-fit,minmax(100px,1fr));
    /* grid-template-rows: repeat(2, 100px); */
    grid-auto-rows: 100px;
}

 

 

Image Grid

.container {
    display: grid;
    grid-gap: 5px;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    grid-auto-rows: 75px;
		grid-auto-flow: dense; /* 빈공간 채워주는 속성 */
}

.horizontal {
	grid-column: span 2;
}

.vertical {
	grid-row: span 2;
}

.big {
	grid-column: span 2;
	grid-row: span 2;
}

 

Justify-content / align-content

주축에서 배열하는 법

교차축에서 배열하는 법

.container {
    border: 1px solid black;
    height: 100%;
    display: grid;
    grid-gap: 5px;
    grid-template-columns: repeat(3, 100px);
    grid-template-rows: repeat(2, 100px);
    justify-content: space-evenly;
    align-content: space-evenly;
}

 

Justify-items / align-items

.container {
    height: 100%; 
    display: grid;
    grid-gap: 3px;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: 40px auto 40px;
    justify-items: stretch; /* 주축 기본값 */
    align-items: stretch; /* 교차축 기본값 */
}

.header {
    grid-column: 1 / -1;
}

.menu {
    grid-column: 1 / 3;
}

.content {
    grid-column: 3 / -1;
    /* content 왼쪽 상단에 배치 */
    justify-self: start;
    align-self: start;
}

.footer {
    grid-column: 1 / -1;
}

 

auto-fit / auto-fill

fit: 채우다

fill: 채우지 않는다

'CSS' 카테고리의 다른 글

container query / Logical Props  (0) 2023.10.18
FLEX  (0) 2023.07.03
shape-outside  (0) 2023.06.26
transform / Loading / aside animation  (0) 2023.06.01
shadow / gradient / transition / animation  (0) 2023.06.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함