CSS(2)
오늘 배운 것
1. CSS (Cascading Style Sheets) 2
display
- 웹페이지의 레이아웃을 결정하는 핵심 속성이다.
- 주요 속성 값:
block
: 항상 새 줄에서 시작하며, 너비와 높이를 가질 수 있다. 지정하지 않으면 너비는 100%가 된다. div
, p
, h1~h6
태그 등이 기본값이다.
inline
: 줄바꿈 없이 다른 요소와 같은 줄에 배치된다. 너비와 높이를 적용할 수 없으며, 콘텐츠의 크기만큼만 공간을 차지한다. span
, a
태그 등이 기본값이다.
inline-block
: inline
처럼 줄바꿈이 없지만, block
처럼 너비와 높이를 지정할 수 있다. button
, input
태그 등이 기본값이다.
none
: 요소를 렌더링하지 않아 화면에서 완전히 사라지게 한다. 차지하던 공간도 없어진다.
visibility: hidden
과의 차이점: visibility: hidden
은 요소를 보이지 않게만 할 뿐, 원래 차지하던 공간은 그대로 유지한다.
- Flexbox: 1차원 레이아웃을 위한 모델로, 요소들을 효율적으로 배치, 정렬, 분산시킬 수 있다.
- 부모 요소에
display: flex;
를 적용하여 자식 아이템들을 정렬한다.
- 주요 축(Main Axis) 과 교차 축(Cross Axis) 의 개념이 중요하다.
- Flex Container 속성 (부모에게 적용):
flex-direction
: 아이템이 배치될 주축의 방향을 설정한다 (row, column 등).
justify-content
: 주축 방향의 정렬 방식을 설정한다 (flex-start, center, space-between 등).
align-items
: 교차 축 방향의 정렬 방식을 설정한다 (stretch, center 등).
flex-wrap
: 아이템들이 한 줄에 맞지 않을 때 줄바꿈 여부를 설정한다.
align-content
: 여러 줄로 배치되었을 때의 교차 축 정렬을 다룬다.
gap
: 아이템 사이의 간격을 설정한다.
- Flex Item 속성 (자식에게 적용):
align-self
: 개별 아이템의 교차 축 정렬을 따로 설정한다.
flex-grow
: 컨테이너에 여백이 있을 때 아이템이 늘어나는 비율을 설정한다.
flex-shrink
: 컨테이너 공간이 부족할 때 아이템이 줄어드는 비율을 설정한다.
order
: 아이템의 배치 순서를 지정한다.
float & clear
- 본래 이미지를 띄워 주변에 텍스트를 배치하기 위한 속성이었으나, 과거에는 레이아웃 구성에도 사용되었다.
float
속성은 요소를 일반적인 문서 흐름에서 벗어나게 하여 좌우로 띄운다.
clear
속성은 float
의 영향을 받지 않고, 띄워진 요소 아래로 배치되도록 한다.
- 최근에는 레이아웃 구성 시
flex
나 grid
를 사용하는 것이 권장된다.
position
- 요소를 문서 내에 어떻게 배치할지 지정하는 속성이다.
- 주요 속성 값:
static
: 기본값으로, 일반적인 문서 흐름에 따라 배치된다. top
, left
등의 속성이 적용되지 않는다.
relative
: 자신의 원래 위치(static 위치)를 기준으로 top
, left
등을 사용해 상대적으로 이동한다. 이동 후에도 원래 있던 공간은 그대로 차지한다.
absolute
: static
이 아닌 가장 가까운 조상 요소를 기준으로 위치가 결정된다. 만약 조상이 없으면 body 태그를 기준으로 한다. 문서 흐름에서 제거되어 다른 요소에 영향을 주지 않는다.
fixed
: 뷰포트(viewport)를 기준으로 위치가 고정되어 스크롤을 해도 움직이지 않는다.
z-index
: position
속성이 있는 요소들의 쌓임 순서를 결정한다. 숫자가 높을수록 위에 배치된다.
반응형 웹 (Responsive Web)
- 웹에 접속하는 디바이스의 종류(화면 크기)에 따라 페이지의 레이아웃이 자동으로 재조정되는 웹 디자인 기법이다.
- 미디어 쿼리(Media Query):
@media
규칙을 사용하여 특정 조건(예: 화면 너비)에 따라 다른 CSS 스타일을 적용할 수 있다.
min-width
, max-width
등의 조건을 사용하여 중단점(breakpoint)을 설정하고, 각 중단점마다 다른 레이아웃을 구성한다.
- 모바일 우선(Mobile-first) 접근법: 작은 화면(모바일)의 스타일을 기본으로 작성하고, 미디어 쿼리를 사용해 화면이 커짐에 따라 스타일을 추가하거나 재정의하는 방식이 일반적이다.
내일 할 일
- 알고리즘, 정처기 필기 공부