미디어 쿼리
미디어 쿼리 구문
- 적용할 미디어 대상 지정
- 적용할 css를 지정
- style태그 사이에 정의
- 속성값
- not : 다음에 지정하는 미디어타입을 제외
- only : 미디어 쿼리를 지원하지 않는 웹 브라우저에서는 무시
- and : 여러 개를 연결하여 추가 가능
미디어 유형
- all : 지원하는 모든 미디어
- print : 인쇄 장치에서 사용할 css 정의
- screen : 컴퓨터 스크린과 같은 모니터 스크린, 스마트폰 포함
- tv : TV
- aural : 음성 신호 장치(TTS 같은 장비들)
- braille : 점자 표시 장치
- handheld : 패드같은 이동성 장치
- projection : 프로젝트 같은 장비
- tty : 디스플레이 기능이 성능이 낮은 장비들
- embossed : 점자 프린터
웹 문서 기준 가로/세로
- 실제 웹 문서 내용이 표현되는 영역의 가로/세로
- width, height
- min-width, min-height --> 브라우저 사이즈에 대해 컨텐츠가 노출 영역의 변동 최저 값
- max-width, max-height --> 디바이스 구분 용도
- 너비가 최소 1440px인 화면에서 플레이 되는 스타일
단말기 기준
- 단말기 해상도와 실제 브라우저의 너비가 다름
- device-width, device-height
- min-device-width, min-device-height
- max-device-width, max-device-height
화면 회전 기준
- orientation : portrait - 단말기 세로모드
- orientation : landscape - 단말기 가로모드
그리드 레이아웃
- 반응형 웹 디자인에서 웹 문서의 요소를 배치하는 기준
- 웹 사이트의 화면을 여러 개의 컬럼으로 나눠서 배치
- 화면을 규칙적으로 배치하고, 레이아웃 일관적으로 관리 편리
- 시각적으로 안정된 디자인
- 업데이트가 편함
- 요소 자유롭게 배치하는 것이 가능
- 구성하는 방법
- - 플렉스 박스 레이아웃
- 수평방향, 수직방향 중 하나를 축으로 정하고 박스를 배치
- 여유 공간이 생길 경우, 너비나 높이를 적절하게 늘리거나 줄일 수 있음
- 주축 : 플렉스 박스의 진행 방향
- 교차축 : 주축과 수직방향
- 플렉스 컨테이너 : display 속성 값으로 flex, inline-flex 사용
- 플렉스 아이템 : 플렉스 컨테이너의 자식관계를 이루는 요소
- - 플렉스 박스의 기본 속성
- display 속성
- flex : 컨테이너 안의 플렉스 항목을 블록 레벨 요소로 배치
- inline-flex : 플렉스 항목을 인라인 레벨 요소로 배치
- 형식 : display:flex / inline-flex
- flex-direction 속성
- row-reverse : 주축 방향을 오른쪽->왼쪽
- column-reverse : 주축 방향을 아래->위
- flex-wrap 속성
- nowrap : 아이템이 플렉스 컨테이너의 영역을 벗어나도 무시
- wrap : 아이템이 컨테이너 영역을 벗어나면 줄바꿈
- wrap-reverse : 아이템이 컨테이너 영역을 벗어나면 wrap의 역방향으로 줄바꿈
- flex-flow 속성
- flex-direction과 flex-wrap 속성을 한번 사용할 수 있는 단축 속성
- 형식 : flex-flow:direction wrap
- 기본값 : flex-flow:row no-wrap
- justify-content 속성
- flex-start : 주축 방향의 시작점 기준으로 정렬
- flex-end : 주축 방향의 끝점을 기준으로 정렬
- center : 주축 방향의 중앙을 기준으로 정렬
- space-between : 플렉스 아이템 사이의 간격이 일정하도록 정렬
- space-around : 플렉스 아이템의 둘레가 일정하도록 정렬
- space-evenly : 아이템의 사이, 양끝 간격이 일정하도록 정렬
- align-items, align-self 속성
- 교차축에서 특정 항목만 지정할 경우 align-self
- flex-start : 교차축 방향의 시작점을 기준으로 정렬
- flex-end : 교차축 방향의 끝을 기준으로 정렬
- center : 교차축 방향의 중앙을 기준으로 정렬
- baseline : 플렉스 아이템의 baseline을 기준으로 정렬
- stretch : 교차축 방향으로 플렉스 아이템의 너비, 높이가 늘어남
- align-content 속성
- 플렉스 아이템이 두 줄 이상일 때 교차축 방향으로 정렬
- flex-start : 교차축 시작점에 맞춰 배치
- center : 교차축 기준 중앙에 맞춰 배치
- space-between : 첫 항목, 끝 항목은 교차축의 시작과 끝에 맞추고, 사이간격은 같은 간격으로 배치
- space-around : 교차축에 모든 항목을 같은 간격으로 배치
- stretch : 교차축 방향으로 플렉스 아이템의 너비, 높이가 늘어남
CSS 그리드 레이아웃
- 최근 등장한 css 표준
- 수평이나 수직이나 어디로든 배치 가능
- 레고블럭 끼우듯이 처리
- 양쪽 축 방향을 모두 사용할 수 있음(2차원 레이아웃)
- 행(row), 컬럼(column)으로 화면 구성
- 행, 열 사이의 여백 조절 --> table과 유사
- 그리드 셀(grid cell) : 행과 열이 만나서 이루어지는 공간
- 그리드 갭(grid gap) : 그리드 셀과 셀 사이의 간격
- 그리드 아이템(grid item) : 그리드 셀 안의 컨텐츠
- 그리드 라인(grid line) : 그리드 행과 열을 그리는 선
- 그리드 넘버(grid number) : 그리드 라인에 붙는 번호
- 그리드 컨테이너(grid container) : 그리드 아이템을 묶는(감싸는) 부모 요소
그리드 레이아웃 속성
display 속성
- grid : 컨테이너 안의 항목을 블록 레벨 요소로 배치
- inline-grid : 컨테이너 안의 항목을 인라인 레벨 요소로 배치
grid-template-columns, grid-template-rows 속성
- grid-template-columns : 그리드 컨테이너 안의 컬럼 개수, 너비값
- grid-template-rows : 그리드 컨테이너 안의 줄 갯수, 너비값
- 형식 : grid-template-columns:1열값 2열값 .....
- 형식 : grid-template-rows:1행값 2행값 .....
- 컬럼에 지정하는 값 -> 상대크기로 지정 가능 --> 테이블 colspan과 같은 개념
- 형식 : grid-template-columns: 2fr 1fr 2fr
row-gap, column-gap 속성
- 그리드 셀과 셀 사이의 간격
- 형식 : row-gap:크기
- 형식 : column-gap:크기
align-items 속성
- 그리드 아이템 전체를 셀의 세로 방향으로 정렬
- stretch : 그리드 아이템이 그리드 셀을 가득 채우도록 크기를 늘림
- start : 그리드 아이템을 그리드 셀의 세로 방향 중간에 배치
- end : 그리드 아이템을 그리드 셀의 맨 아래에 배치
align-self 속성
- 각각의 그리드 아이템을 셀의 세로 방향으로 각각 지정
justify-items 속성
- 그리드 아이템 전체를 셀의 가로 방향으로 정렬
- stretch : 그리드 아이템이 그리드 셀을 가득 채우도록 크기를 늘림
- start : 그리드 아이템을 그리드 셀의 왼쪽 끝에 배치
- center : 그리드 아이템을 그리드 셀의 가로 방향 중간에 배치
- end : 그리드 아이템을 그리드 셀의 오른쪽 끝에 배치
justify-self 속성
- 각각의 그리드 아이템을 셀의 가로 방향으로 정렬
place-item 속성
- align-items, justify-items 속성을 한 번에 지정
- 형식 : place-items: align-items속성 justify-items속성
place-self 속성
- align-self, justify-self 속성을 한 번에 지정
- 형식 : place-self: align-self속성 justify-selfthrtjd
grid-template-areas 속성
grid-area 속성
grid-column-start, grid-column-end
- 그리드 레이아웃에서 열의 시작, 끝번호 지정
- 형식 : grid-column-start:속성값
- 형식 : grid-column-end:속성값
grid-row-start, grid-row-end 속성
- 그리드 레이아웃에서 행의 시작, 끝번호 지정
- 형식 : grid-row-start:속성값
- 형식 : grid-row-end:속성값
grid-column
- grid-column-start, grid-column-end 의 단축 속성
- 형식1 : grid-column:start end
- 형식2 : grid-column:start/span(열의 개수)
grid-row
- grid-row-start, grid-row-end 의 단축 속성
- 형식1 : grid-row:start end
- 형식2 : grid-row:start/span(행의 개수)
오늘은 mediaQuery, flex layout, grid layout에 대해서 공부를 진행했다. grid에 대해선 알고 있었지만 항상 flex로 layout을 잡는 걸 고집해왔었는데 grid로 layout을 나누는 게 코드 상으로는 훨씬 깔끔한 느낌을 받았다. 손에 익을 정도로 열심히 공부해야할 것 같다.