주말은 공부를 못했다. . . 이모집 갔다가 집에 오느라 + 새로 산 데스크탑 세팅. . .
그리고 시험도 있었고. 오늘도 있다. 하지만 해야죠?
이제 css를 마저 정리해보고자 한다.
css 급하게 강의를 듣느라 정말 강의만 듣고 넘겼는데, 막상 웹페이지를 만들기 시작하니
레이아웃 만드는 게 쉽지 않아서...
9. order
플렉스 아이템의 배치 순서를 설정할 수 있으며, 지정한 숫자에 맞춰 오름차순으로 배치가 진행된다.
코드에 영향을 끼치지 않고, 보여지는 순서에만 영향을 준다.
그리드 레이아웃
이름 그대로 격자 형태의 레이아웃을 만드는 2차원 레이아웃 방식을 말한다.
그리드 레이아웃 방식에서 그리드 아이템의 배치와 정렬은 그리드 컨테이너 내부의 행과 열의
상호작용을 통해 결정된다.
그리드 컨테이너는 그리드 방식으로 레이아웃을 결정할 요소를 말하고, 그리드 아이템은 컨테이너
내부에서 그리드 방식으로 배치되는 요소다.
시작은 flex처럼 display: grid 속성을 준다.
마찬가지로 인라인은 inline-grid 속성을 주면 된다.
관련 속성
grid-template-columns
그리드 컨테이너 트랙 중 열(column) 트랙 내 아이템들의 크기를 지정할 수 있는 속성이다.
(트랙: 행 또는 열)
repeat(반복될 열 & 행 개수, 크기) : 같은 크기일 때 반복해서 지정할 수 있다.
*repeat 첫번째 인자에 받을 수 있는 키워드 : auto-fill(트랙의 최소 길이의 합보다 컨테이너의 너비가 훨씬 길어진 경우 빈 공간을 남긴다), auto-fit(컨테이너에 빈 공간을 남기지 않고 다 채워준다)
minmax(최소 길이, 최대 길이) : 아이템의 최소, 최대 길이를 지정할 수 있다.
grid-template-rows
트랙 중 행 트랙 내 아이템들의 크기를 지정할 수 있는 속성이다.
fr - (단위) 사용할 수 있는 공간에서 비율로 나눔
gap(grid-gap)
그리드 아이템 사이의 간격을 지정하는 속성이다. 간격을 똑같이 지정할 수도 있고,
각자 지정할 수도 있다.
grid-column & row
그리드 컨테이너의 줄 번호를 이용해 아이템을 배치할 수 있다.
줄 번호 : 경계선 하나하나마다 매겨진 숫자 의미
grid-row-start -> (n번째 줄에서) 시작
grid-row-end -> (n번째 줄까지)
grid-template-areas
그리드 영역(아이템)의 이름을 이용해 레이아웃의 형태를 정의할 수 있다.
grid-area
그리드 영역(아이템)의 이름을 지정할 때 사용하는 속성이다.
align-items
플렉스 박스 방식에서와 유사한 역할을 한다. 그리드 컨테이너 행 높이를 기준으로 그리드 아이템의 배치를 결정한다.
(행 높이 안에서의 배치 결정)
align-self
각각의 그리드 아이템이 어떤 식으로 배치될 것인지를 스스로 결정한다.
justify-items
수평축(행)을 따라 그리드 아이템을 정렬하고자 할 때 사용할 수 있는 속성으로, 그리드 컨테이너에 지정한다.
아이템에 할당된 열 방향 너비가 기준이 된다.
(열 너비로의 배치 결정)
justify-self
수평축(행)을 따라 그리드 아이템을 정렬하고자 할 때 사용할 수 있는 속성으로, 각각의 그리드 아이템에 지정한다.
align-content & justify-content
플렉스 박스 방식과 유사하게 사용한다.
그리드 컨테이너의 수직축과 수평축에서의 아이템 정렬 방식을 결정한다.
컨테이너에 여유 공간이 있을 때 사용할 수 있다.
align-content : 컨테이너 전체 안에서냐, 세로 방향
align-items : 트랙 안에서냐
justify -content : 가로 방향
정리 (flex)
부모 요소인 div.container -> flex container라 부름
자식 요소인 div.item -> flex item이라 부름
컨테이너는 flex의 영향을 받는 전체 공간이고, 설정된 속성에 따라 각각의 아이템들이 어떤 형태로 배치된 것
속성은 컨테이너에 적용하는 속성, 아이템에 적용하는 속성 두 가지로 나뉨
(컨테이너에 적용하는 속성)
flex-direction -> 아이템 배치 방향 설정
flex-wrap -> 줄넘김 처리 설정
flex-flow = 위 두가지 한꺼번에 지정 가능
*justify (메인축 방향으로 정렬(-))
*align (수직축 방향으로 정렬(|))
justify-content -> 메인축 방향으로 아이템 정렬
align-items -> 수직축 방향으로 아이템 정렬
align-content -> 여러 행 정렬( flex-wrap:wrap일 때)
(아이템에 적용하는 속성)
flex-basis -> 유연한 박스의 기본 영역
flex-grow -> 유연하게 늘리기
flex-shrink -> 유연하게 줄이기
flex = 위 세가지를 한 번에 지정 가능
align-self -> 수직축 방향으로 아이템 정렬( align-items보다 우선)
order -> 배치 순서 결정
z-index -> z축 정렬 가능 (숫자가 클수록 위로 올라감)
정리 (grid)
flex보다 더 복합적인 레이아웃 표현 가능
그리드 컨테이너 -> 그리드를 적용하는 그리드의 전체 영역
그리드 아이템 -> 그리드 컨테이너의 자식요소
그리드 트랙 -> 그리드의 행 또는 열
그리드 셀 -> 그리드 한 칸
그리드 라인 -> 그리드 셀 구분하는 선
그리드 번호 -> 그리드 라인의 각 번호
그리드 갭 -> 그리드 셀 사이의 간격
그리드 영역 -> 그리드 라인으로 둘러싸인 사각형 영역 (그리드 셀의 집합)
속성
grid-template-rows & columns -> 그리드 트랙의 크기들을 지정해주는 속성
https://youtube.com/playlist?list=PLFeNz2ojQZjso4ZJVeeMWR72l8s9V8Ym9&si=0HEIOfgwPu8wh6fz
CSS 레이아웃 - flex & grid
www.youtube.com
https://studiomeal.com/archives/197
이번에야말로 CSS Flex를 익혀보자
studiomeal.com
'CSS' 카테고리의 다른 글
css 총정리 2 (0) | 2024.05.08 |
---|---|
css 총정리 1 (0) | 2024.05.07 |
프리티어, reset css (0) | 2024.04.29 |
정렬 - flex, text (0) | 2024.04.16 |