block
요소 ... float
속성을 부엽하면 inline
요소가 자동으로 block
으로 수정됨 (flex, grid 등은 제외)float
속성을 주게되면, container 가 제대로 감싸지 못하고 밖으로 빠져나오는 문제점이 있음.container .item:nth-child(4) {
clear: left;
}
이렇게 되면, 사용하지 않을 4번째 요소를 만들어줘야 하는 문제가 존재하게 됨.
overflow 를 통한 해결
overflow: hidden
을 속성을 사용한다.overflow
속성은 float
과 아무런 관계를 가지지 않기 때문에, 전혀 관련이 없는 속성을 작성해야 하는 문제점을 가지고 있음. (근본적인 해결책이 아님)가상요소 선택자 after 를 통한 clearfix
::after
를 통해 가상의 html 요소를 생성하여 css 속성을 추가한다.content
값이 필요함clearfix
class 를 통해 사용한다.clear: both
... float
이 left, right 둘 다 가질 수 있기 때문에 모두 clear 해주기 위해 both 를 사용한다.clearfix
가 부여된 container 에는 float
을 사용하는 요소들만 들어있어야 함. float--left
class 를 가지는 새로운 div 로 감싸 내부의 item 에 float--left
class 를 주면 해결할 수 있다.
position
의 사용은 position
혹은 배치에 영향을 주는 속성을 가진 구조적으로 가장 가까운 조상요소 를 기준으로 배치됨position: absolute
... 부모요소를 기준으로 배치 ex) right: 0px; bottom: 0px;position: relative
속성이 필요position: fixed
... 기본적으로 viewport 를 기준으로 위치를 지정position: relative
가 있어도 fixed 에는 영향을 미치지 못함transform
, perspective
, filter
속성이 존재하는 부모요소가 있다면 해당 부모요소를 기준으로 배치되는 문제점이 발생함z-index
를 사용하지 않더라도 요소를 쌓을 수 있음 (transform
, opacity
, ...)z-index
는 position
에서 static을 제외한 나머지 값을 가질 때 사용할 수 있음 (relative, absolute, fixed, sticky)z-index
default ... auto
(0 이라고 불 수 있음)display: flex
... x축으로 요소들을 정렬display: flex
속성을 부여해야 자식요소들이 수평 정렬됨flex
는 부모요소에 부여해야하는 속성, 자식요소에 부여해야하는 속성이 각각 존재함display: flex
... 위에서 아래로 수직으로 정렬(container 가 수직으로 정렬) / container 의 가로너비가 최대한 늘어나려고 시도함 (block 과 유사)display: inline-flex
... 수평으로 정렬 / container 의 가로너비가 최대한 줄어드려고 함 (inline 과 유사)flex-direction
... flex 내부의 item 들이 어느 축을 기준으로 정렬될 것인지를 결정row
: 행(줄) 수평정렬 (왼쪽에서 오른쪽으로 x축) / defaultrow-reverse
: 오른쪽에서 왼쪽으로column
: 열(칸) 수직정렬 (위에서 아래로 y축)column-reverse
: 아래에서 위로row
(start: container 왼쪽 끝, end: container 오른쪽 끝)flex-wrap
... 구조의 줄바꿈 처리를 지정nowrap
: 줄바꿈 처리가 되지 않음 / dafaultwrap
: 줄바꿈 처리가 가능함wrap-reverse
: 반대방향으로 줄바꿈justify-content
... main-axis (주축) 의 정렬 방법을 지정 (flex-start, flex-end, center)space-between
: 가장 첫 아이템을 주축의 시작점에, 마지막 아이템을 주축의 끝점에 배치하고 나머지 아이템은 사이 공간을 균등하게 배치space-around
: 각각의 아이템의 양 옆의 공간을 균등하게 분배하여 배치align-items
...cross-axis (교차축) 의 정렬 방법을 가짐 (flex-start, flex-end, center) / default: stretch(item 이 container 의 교차축 길이에 맞게 최대한 늘어남)baseline
: 아이템에 들어있는 문자의 기준선(문자의 가장 아랫쪽 기준선)에 맞춰 정렬align-content
... 두 줄 이상 아이템이 쌓여있을 때 (flex-wrap: wrap
일때) 교차죽의 정렬 방법을 가짐 (stretch(기본값), flex-start, flex-end, center, space-between, space-around)flex grow
... flex item 의 증가 너비 비율을 설정 (default: 0)flex shrink
... flex item 의 감소 너비 비율을 설정 (default: 1)flex basis
... 요소의 기본너비를 설정 (default: auto)grow
나 shrink
를 사용한다면, basis pixel을 제외하고 넘어가는 나머지 부분에서의 비율을 조절하게 됨flex 단축속성
flex: grow(value) shrink(value) basis(value);
default ... flex: 0 1 auto;
flex 단축속성에서는 basis 생략시, auto 가 아닌 0 이 들어감 ... flex 단축 속성 보다는 개별 속성이 더 명확하게 관리 할 수 있음
order
... flex item 의 순서를 설정 (default: 0)align-self
... 지정할 수 있는 item 을 개별적인 아이템으로 관리할 수 있는 속성 (default: auto)gap
... 아이템 사이에 여백을 설정할 수 있음display: grid;
부여display: grid
/ display: inline-grid
grid-template-rows
/ grid-template-columns
100px; 100px;
: 공백을 기준으로 개별 갯수를 지정하여 각각의 명시적 행 / 열을 설정할 수 있음1fr 1fr 1fr;
: 3개의 열을 만들고, 1 공간 비율을(1:1:1) 차지하도록 설정할 수 있음 (container 의 너비를 전부 사용)repeat(반복횟수, fr 단위 / pixed);
: 공간 너비 비율 단위(혹은 픽셀)를 가지는 반복 횟수만큼의 영역을 만듦 ex) repeat(8, 1fr) - 8개의 영역을 1의 비율로 만듦grid-auto-rows
/ grid-auto-columns
... 명시적으로 생성한 cell 이외의 암시적인 item 의 행과 열의 크기를 지정해 줄 수 있음grid-auto-flow
... 지그재그로 정렬되는 특성으로 빈공간이 생기게 되며, 이 빈공간을 제어할 수 있음(row )dence
/ column dence
: 빈공간을 자동으로 매워줌 (가장 가까운 item 으로 채워짐)그리드에서의 각 축의 정렬
justify-content
... 행축의 정렬 방법을 지정 (start, end, center, space-between, space-around, space-evenly) default: normal(=stretch)align-content
... 열축의 정렬 방법을 지정 (start, end, center, space-between, space-around, space-evenly) default: normal(=stretch)justify-items
... cell 내부에서의 행축의 정렬 방법을 지정 (start, end, center, space-between, space-around, space-evenly) default: normal(=stretch)grid-area
... grid item 들의 영역 이름을 활용하여 grid-template-areas
로 레이아웃을 만들 수 있음.(주로 사용되는 방법은 아님)grid-gap
... cell 사이사이에 공백 영역을 제어함 (단축속성)grid-row-gap
/ grid-column-gap
의 개별속성으로도 사용할 수 있다.grid-row
/ grid-column
span 2;
: 2개의 행 또는 열을 차지하게 설정grid-row-start: 2;
: 2번 line 부터 영역을 설정grid-row-end: 3;
: 3번 line 에서 영역이 끝나도록 설정-start, -end 단축속성
grid-row: start / end; grid-column: start / end;
ex) grid-row: 1 / 3; ... 1번 line 부터 3번 line까지 영역을 설정
justify-self
: 지정할 수 있는 item 을 개별적인 아이템으로 관리할 수 있는 속성order
: 숫자가 클수록 순서가 뒤로 밀려나는 순서를 제어할 수 있는 속성z-index
: 요소의 쌓임 순서 정의 (숫자가 클수록 더 위쪽에 쌓임)이번에는 css 의 기초를 공부하게 되었다.
많은 내용을 공부하였지만, 이전에 이미 한번 배워놓은 내용이였기 때문에 그다지 어렵지 않게 복습하는 느낌으로 부담없이 들을 수 있었다.
물론 잘 다룰 수 있을지는 별개지만, 모호했던 개념들을 다시 잡는 시간이 되었다.
내일은 다시 JS로... 😇