align-content = 주축의 정렬방식을 확인하며, 교차축의 정렬방식을 설정함, 1줄의 경우 align-items을 사용함, 주의점으로 flex-wrap이 items가 2줄이상이고, 여백이 있어야지 사용이 가능하다.
stretch : 기본값으로 container의 내용을 채우기 위해 items을 여백없이 늘려서 꽉꽉채움, 높이값이 정해지지 않으면 자동으로 설정되며, 높이값을 fix시킨다면 여백이 생기게 된다.
flex-start : 전체적으로 위쪽 정렬 , 주축이 달라지면 위치가 달라진다
flex-end : 전체적으로 아랫쪽 정렬 , 주축이 달라지면 위치가 달라진다
center : 가운데
space-between : 위아래 items을 끝에 설정하고 여백이 균등하게
space-around : 가지고 있는 여백을 위아래 균등하게 입력함
align-items = 교차축의 items의 정렬 방법
align-content : 줄이 여러줄이며 2줄이상일 경우 입력해서 사용, 여백이 존재함
align-items : 1줄인 경우 사용한다.
stretch : 기본값으로 한줄의 교차축을 늘린다.
flex-start : 한줄의 시작점에 위치
flex-end : 한줄의 끝점에 위치
center : 센터에 정렬
baseline : 문자 기준선에 정렬함, 글자의 크기는 다르지만 문자열 형태의 기준으로 정렬함.
flex-items
order : 순서를 설정함, items에게 숫자를 지정하여, 크기가 클수록 뒤로 밀리며, 음수 값은 허용된다. 숫자가 작으면 앞으로 오게 설정됨, html 작성과 상관없이 순서가 변경되며, 기본값은 '0'이다. order 숫자가 같으면 html의 구조를 따른다.
flex = flex-grow , flex-shrink, flex-basis 단축속성으로 사용
flex-grow : 증가 너비
flex-shrink : 감소 너비
flex-basis : 공간 배분 하기 전의 기본 너비
align-self : cross-axis (교차축) 에서 item의 정렬 방법을 설정 align-content-items 하나의 items에 부여
flex-grow
기본값은 '0'
item의 증가너비비율을 설정할 수 있음
숫자가 크면 더 많은 너비를 차지함
item이 가변너비가 없고, 값이 0이면 효과가 없음
flex-grow 의 값이 1 , 2, 1일 경우 총값 4로 나눠 flex-grow의 비율만큼의 너비를 정한다. 총 너비를 몰라도 너비 설정이 가능하다. 다른 너비가 px가 적용이 되어 있다면, 완벽하게 너비를 설정했다고 할 수 없다.
flex-grow 는 증가너비의 비율은 width 로 인해 영향을 받아, flex-basis 로 flex의 가변 범위에 입력하여 기본 값을 정하는 것이 좋다.
flex-shrink = item이 감소하는 너비의 비율을 설정한다.
숫자가 높으면 너비가 감소
item이 가변너비가 없고, 값이 0일 경우 효과가 없음
contain이 감소하지 않을 때는 요소가 가지고 있는 flex-basis(요소의 기본너비) width,height(고정너비)를 설정해 놓았을 때이다.
기본값은 1 이다.
flex- basis가 200px이고 flex-shrink가 2일경우 와 flex- basis가 200px이고 flex-shrink가 1일 경우 의 계산방법: flex- basis와 flex-shrink을 곱해줌 (200*2 =400 , 200*1=200 )= 4:2 = 2:1의 값이 나옴 2+1 = 3 ->2/3+1/3 으로 줄어든크기에 곱해준다. (200px-(90/3*2))=140px (200px-(90/3*1))=170px 의 값이 나온다. shrink이 크면 더감소한다.
css grid의 경우 Hack으로 (핵) 불린 다양한 레이아웃으로 만들어진다. 고차원의 대체 방식을 해결하기 위해 만들어 졌다.
css grid의 경우 firfox를 이용하여, 그리드 값을 확인 할 수 있게 작업하는 것이 좋다.
grid의 properties container / items은 속성에 차이가 있다.
Grid 의 container의 경우 display값은 grid로 설정해주어야한다. grid의 경우 block요소, inline-grid 의 경우 inline 요소이다.
grid-template-columns : 명시적 열의 크기
가변하는 넓이의 양을 비율에 맞게 작성함 Fr = 비율 1:1인 경우 1fr 1fr 2:1인경우 2fr 1fr처럼 비율을 작성가능하다.
grid-template-rows : 명시적 행의 크기
5개이상의 행과 열을 설정할 경우 실수 할 수 있기 때문에 repeat의 함수를 이용하면 좋다.
repeat(반복함수) (몇회? , 무엇을 반복할 것인가?)-container에 적용한다.
grid-row , grid-column = item을 배치하는, 특정값을 배치한다.
:nth-child(n)을이용하여 item을 선언할 문장을 만들고 열을 확장한다 (1/3 :1~3열) row : 1/2 (1~2행)
.item:nth-child(n) 처럼 그리드 숫자를 이용하여, 배치가 가능하다.
grid-template-area = 지정된 그리드 영역의 이름을 (grid-area:grid-item의 이름 )을 참조하여, 그리드 탬플릿을 생성한다.
{grid -template-area : "header header header"
"main main main"
"footer footer footer" }
header{grid-area:header;}
main{grid-area:main;}
footer{grid-area:footer;} 영역을 정한다. 빈칸을 만들 경우 '.'만 입력하게 되면 빈칸이 생성된다.
원하는 모양을 만들기 위하여 단어를 작성하여 칸을 생성할 수 있다.
완성
row-gap(grid-row-gap ) = 행과 행사이의 간격 (gutter : grid-line을 지정함)column-gap(grid-column-gap ) =열과 열사이의 간격 : 선의 크기
gap = row column으로 단축으로 입력가능하다 (띄어쓰기이용)
grid-의 접두사의 경우 폐기가 되었으나 일부 브라우저 지원을 위해서 접두사를 사용해야할 경우가 있다.
grid-auto- = 암시적 행 track의 크기를 정의한다. row, column을 붙여 작성가능
명시적이란 확실하게 작성한 값을 의미, 암시적이란 명시적 밖에있는 가벽의 행과 열을 정의 하는 것이다.
template : 명시적, auto : 암시적
자동으로 늘어난 암시적의 경우 음수를 사용하지 않는다 .
만들지 않은 행과 열이 만들어진 것
template
auto
설정한 명시된 값
만들지 않은 행과 열이 만들어짐, 가벽
음수, 양수 사용
양수만 사용
배치한 item
배치하지 않은 item
grid-auto-flow = 배치하지 않은 아이템 , 어떤 방식의 '자동배치 알고리즘' 이용함 ->채워지거나 안채워지거나
row : 기본값, 수평축으로 처리 할 지 정의함
column : 수직축으로 처리 할 지 정의함
row-dense : 수평행을 따라서 차례로 배치되며, 빈곳을 매움
column-dense : 수직열을 따라서 차례로 배치되며 빈곳을 매움column은 dense에서 생략이 불가능하다.
3번행이 앞으로 간 것을 확인 할 수 있다.
grid-template-rows와 column 의 라인번호/ 선의 번호 나눌때 /에 유의한다. fr 와 repeat()함수로 손쉽게 이용가능하다.
grid-template : [선의 이름 ] 1행크기 [선의 이름 ] 2행크기 [선이 이름] 3행 크기 처럼 선의 이름을 정의하면서 작성가능하다.
[line start] 100px [line end line start] 200px ..[중복된 이름값을 사용 할 수 있다. ]
너비가 중요하기 때문에 이름은 복잡함으로 특별하지 않으면 이름을 붙일 필요가 없다.
1. 명확하고, 중요한 부분에 사용하기, 2. 대괄호 안에 따음표는 들어가지 않는다는 점 유의하기
grid-template-colums : 1200px의 12 column grid를 만들어야 할 경우 repeat(12, 100px)로 이용이 가능하다. repeat (4,100px 200px 50px) 크기를 다르게 입력해도 사용이 가능하며, 패턴을 입력할 때, 반복된 값을 입력할 때 사용하기 좋다.
grid-row-start / grid -row-end = grid-row로 단축키로 사용이 가능하다. 1(시작)/4(끝으로 채워라)