.container{
dispaly: inlne-grid;
}
행과 열을 명시적으로 주는 형태
.container{
grid-template-columns: 80px, 80px, 80px;
grid-template-rows: 100px 100px;
}
.container{
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 100px 100px;
}
.container{
grid-template-columns: 2fr 1fr ;
grid-template-rows: 100px 100px;
}
.container{
grid-template-columns: 2fr 1fr ;
grid-template-rows: repeat(4,80px);
}
.container{
display: grid;
grid-template-columns: repeate(5,1fr);
grid-template-rows: repeat(3,1fr);
gird-template-area:
"hd hd hd hd hd hd"
"ma ma ma sb sb sb"
"ft ft ft ft ft ft";
}
.header{
grid-area:hd;
}
.main{
grid-area:ma;
}
.sidebar{
grid-area:sb;
}
.footer{
grid-area:ft;
}
-각각의 행들의 간격
.container{
display: grid;
grid-template-columns: repeate(5,1fr);
grid-template-rows: repeat(3,1fr);
row-gap: 20px;
coloum-gap:50px;
}
gap(20px,50px) 로 축약해서 작성도 가능
흘러 넘치는 컬럼과 너비들에게 자동으로 부여해 주는 것
템플릿에 명시적으로 높이와 너비가 지정되지 못한 애들을 암시적으로 지정하는 것
넘치는 아이템이 있어야지만 알수있다
.container{
display: grid;
grid-template-columns: 10px 150px 80px;
grid-template-rows: repeat(3,1fr);
grid-auto-rows: 100px;
gird-auto-columns: 50px;
}
.container{
display: grid;
grid-template-columns: repeat(3,1f);
grid-template-row : repeat(3,1f);
grid-auto-row : row dense;
}
행 방향으로 자리를 잡는 것을 볼 수 있다
dense는 빈영역이 없이 꽉 차게지정할 수 있다
위의 요소들을 한번에 사용할 수 있는 단축 속성이다
앞의 애들은 외재적인 속성 (명시적인 속성 딱 지정해서 컬럼과 로우의 크기를 지정한 애들이 있고 )
아래 세가지가 암시적으로 지정하는 것( 그 아이템들이 자리 잡아야지만 볼수 있다 , css가 그 흐름에 맞춰서 암시적으로 자리를 잡은 것이다 )
grid : auto-flow / 1fr 1fr 1fr
row/column 앞이 row 뒤가 column 을 명시한 것
앞쪽이 row 뒤가 column 의 순서를 지켜야한다
명/명 , 명/암, 암/명 각각 원하는 속성을 넣어주면된다
.container{
display:grid;
grid-template-rows: 1fr 2fr;
grid-template-columns: 100px 200px;
/*위와 똑같 작성 명/명 */
grid: 1fr 2fr/ 100px 200px;
/*행과 열 중에 원하는 곳을 auto-flow 라는 값을 작성하고 싶을 때 */
grid : 1fr 2fr / auto-flow: 100px 200px;
}
.container{
width:100%;
height 500px;
display:grid;
grid-template-rows: repeat(3,100px);
grid-template-columns: repeat(3, 100px);
justify-content: start;
/*메인축 기준으로 시작*/
}
-start , end ,center 뿐만 아니라 flex 와 마찬가지로 space-around , space-between 을 가질 수 있음
container 가 주황색 컨텐트가 나머지 파란색들
사진처럼 빈 공간이 남아있는걸 확인할 수 있다
.container{
width:100%;
height 500px;
display:grid;
grid-template-rows: repeat(3,100px);
grid-template-columns: repeat(3, 100px);
justify-content:end;
/* 메인축을 기준으로 끝으로 가있는것 확인*/
}
.container{
width:100%;
height 500px;
display:grid;
grid-template-rows: repeat(3,100px);
grid-template-columns: repeat(3, 100px);
justify-content:center;
align-content: center;
}
justity-content 와 align-content 을 같이 사용하면 가운데 중앙에 정렬되는것을 볼 수 있다
jusfify-content align-content 는 내부의 아이템들을 여러개의 기준으로 나열
items 들은 컨테이너의 크기와는 상관없이 하나의 틀 안에서 하나의 아이템들을 어떻게 배치할건지를 이야기한다
jusfify-items align-items 한 틀 안에서 어떻게 아이템들을 배치할 것인가를 정하는것이다
start - 아이템들이 각각의 크기를 가지고 축의 시작점들에 위치하는 것을 볼 수 있다
strech - 기본값이고 본인의 영역안에서 끝까지 늘어나는 형태를 볼수있다. 대신 자기 자신만의 height가 있을 때는 늘어나지 않음
.container{
width:100%;
height 500px;
display:grid;
grid-template-rows: repeat(3,1fr);
grid-template-columns: repeat(3, 1fr);
justify-items: start;
}
-각 아이템 속성 하나에만 위치를 지정할수도 있다
.item:nth-child(2){
justify-self : end;
}
아이템의 row가 어디서 시작하고 어디서 끝나는지를 지정할 수 있다
단축 속성이다
grid-row-end
grid row-start 를 사용
grid : 1/ 3 ;
사용방법을 알아보자
.container{
width:100%;
height 500px;
display:grid;
grid-template-rows: repeat(3,1fr);
grid-template-columns: repeat(3, 1fr);
}
.item:nth-child(2){
background-color: coral;
grid-row-start : 1;
grid-row-end : 3;
}
단 여기서 start 와 end 는 행의 명시가 아니라 grid 의 줄의 표시이다
넘버링은 명시적을 선언된 애들한테만 표시됨
.container{
width:100%;
height 500px;
display:grid;
grid-template-rows: repeat(3,1fr);
grid-template-columns: repeat(3, 1fr);
}
.item:nth-child(2){
background-color: coral;
grid-row-start : 1;
grid-row-end : -1;
}
grid-row-end: -1 로 지정해주면 전체 다 차는 것을 확인 할 수 있다
.item:nth-child(2){
background-color: coral;
grid-row: 2/ span 2;
}
span을 차지하면 2번부터 끝까지 차지하겠다는 것을 의미한다
단축속성이다 (아래 순서대로 사용하면됨)
grid-row-start
grid-colmun-start
grid-row-end
grid-column-end
.item:nth-child(2){
grid-area : 4 /2 /span 2/ -1;
}
기본 초기값이 0 (우리가 일반적으로 순서를 지정하지 않은 item들은 다 0 이고 마크업 순서로 정렬이 되어있다
개별적인 item들에 순서를 지정할 때 사용
.item:nth-child(5){
order: -1;
}
우리가 알고있는 html 요소들에게 모두 지정 가능한 속성이다
grid 특정 시작부분을 자리잡다보면 겹치는 요소가 생길 수 밖에 없다
-요소들을 쭉 나열해 두고 더 작은 값을 사용할 애들을 - 값으로 사용해주면 좋다
.item:nth-child(1){
grid-row 1 / span 2;
grid-column 1/ span 2;
z-index : 5;
}
.item:nth-child(2){
grid-row 1 / 2;
grid-column 2/ 4;
z-index : 3;
}
.container{
display:grid;
grid-template-rows: repeat(3,100px);
grid-template-columns: 1fr 2fr;
}
.container{
display:grid;
grid-template-rows: repeat(3,100px);
grid-template-columns: min-content 1fr 1fr;
}
더 이상 줄어들 수 없을 때까지 줄어든가 제일 긴단어를 가진 걸 기준으로
.container{
display:grid;
grid-template-rows: repeat(3,100px);
grid-template-columns: max-content 1fr 1fr;
}
나머지 애들은 1fr씩 남은 부분을 1fr 씩 나눠 가진다
.container{
display:grid;
grid-template-rows: repeat(3,100px);
grid-template-columns: repeat(auto-fill, 100px);
grid-auto-rows : 50px;
}
.container{
display:grid;
grid-template-rows: repeat(3,100px);
grid-template-columns: repeat(auto-fill, ,minmax(100px,1fr));
grid-auto-rows : 50px;
}
가로로 남는 공간을 꽉 채워서 사용이 가능하다
.container{
display:grid;
grid-template-rows: repeat(3,100px);
grid-template-columns: repeat(auto-fit, ,minmax(100px,1fr));
grid-auto-rows : 50px;
}