HTML 구조
Page Title

Hello World

주요 요소
텍스트 & 제목

Heading 1

...
Heading 6

Paragraph text

Bold Italic

링크 & 이미지
Link text #section">Anchor link Description
목록
  1. First
입력 타입
Select & Textarea
시맨틱 HTML
<header>소개 콘텐츠 또는 nav 컨테이너
<nav>내비게이션 링크
<main>페이지 주요 콘텐츠 (페이지당 하나)
<section>주제별 콘텐츠 그룹화
<article>독립적인 콘텐츠
<aside>사이드바 또는 부가 콘텐츠
<footer>섹션 또는 페이지 하단
<figure>캡션이 있는 이미지/다이어그램
<figcaption>
의 캡션
CSS 선택자
기본 선택자
elementp { } — 모든

요소

.class.card { } — 클래스 선택자
#id#main { } — id 선택자
*전체 선택자 (모든 요소)
결합자
A B자손 (A 안의 B)
A > B직접 자식만
A + B인접 형제 (A 바로 뒤의 B)
A ~ B일반 형제 (A 뒤의 B)
의사 클래스
:hover마우스 오버
:focus요소에 포커스
:first-child부모의 첫 번째 자식
:nth-child(n)n번째 자식 (2n=짝수, odd=홀수)
박스 모델
.box { margin: 10px; /* outside */ border: 1px solid #333; /* edge */ padding: 15px; /* inside */ width: 200px; box-sizing: border-box; /* include pad+border */ }
단축 표기
margin: 10px모든 방향
margin: 10px 20px상하 | 좌우
margin: 10px 20px 15px상 | 좌우 | 하
margin: 10px 20px 15px 5px상 | 우 | 하 | 좌
Flexbox
컨테이너
.flex-container { display: flex; flex-direction: row; /* row | column */ justify-content: center; /* main axis */ align-items: center; /* cross axis */ gap: 10px; flex-wrap: wrap; }
항목 속성
flex: 1사용 가능한 공간을 차지하도록 늘어남
flex-grow: 2형제 대비 늘어나는 비율
flex-shrink: 0기본 크기 이하로 줄어들지 않음
flex-basis: 200px늘어나기/줄어들기 전 초기 크기
align-self: flex-end컨테이너 정렬 재정의
order: -1시각적 순서 (기본값 0)
Grid
컨테이너
.grid { display: grid; grid-template-columns: 1fr 2fr 1fr; grid-template-rows: auto; gap: 10px; }
항목 배치
.item { grid-column: 1 / 3; /* span col 1-2 */ grid-row: 1 / 2; } /* shorthand: repeat, minmax */ grid-template-columns: repeat(3, 1fr); grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
포지셔닝
static기본 흐름 (offset 속성 없음)
relative일반 위치에서 이동
absolute가장 가까운 positioned 조상에서 이동
fixed뷰포트에서 이동 (스크롤해도 고정)
sticky스크롤 임계점까지 relative, 그 후 fixed
예시
.parent { position: relative; } .child { position: absolute; top: 0; right: 0; /* top-right corner */ }
미디어 쿼리
/* Mobile-first: base styles for small screens */ .container { padding: 10px; } @media (min-width: 768px) { .container { max-width: 720px; } } @media (min-width: 1024px) { .container { max-width: 960px; } }
일반 중단점
480px소형 스마트폰
768px태블릿
1024px소형 데스크톱 / 가로 태블릿
1280px데스크톱