CSS 기초 강의|선택자, Margin, Padding, Display 쉽게 배우기 🎨
- CSS란? 뼈대만 있는 HTML에 색을 칠하고 여백을 잡아주는 '인테리어 도면'입니다.
- 선택자: 수많은 요소 중 "어떤 녀석"을 꾸밀지 콕 집어내는 '이름표'입니다.
- Box Model: 웹의 모든 요소는 '네모난 액자'입니다. 이 액자의 안팎 여백을 다루는 게 레이아웃의 전부입니다.
1. CSS가 HTML과 연결되는 방식
<link> 태그입니다.HTML 파일 안에 아래처럼 <link> 태그를 한 줄 적어두면, 브라우저가 "아, 이 HTML은 저 CSS 파일을 보고 꾸미면 되는구나!" 하고 알아차립니다.
티스토리는 우리가 직접
<link> 태그를 쓸 필요 없이 이미 다 연결해 두었습니다.경로: 블로그 관리자 👉 꾸미기 → 스킨편집 → HTML 편집 → CSS 탭
이 CSS 탭의 맨 아래 빈 공간에 여러분이 짠 코드를 복사해서 붙여넣기만 하면 곧바로 내 블로그 디자인이 바뀝니다!
2. 대상 콕 집어내기: 선택자(Selector) 3대장
- 태그 (학년): "1학년들(p) 전부 파란 체육복 입어!" (범위가 가장 넓음)
- 클래스 (동아리): "축구부(.soccer)만 노란 조끼 입어!" (특정 그룹 묶기)
- 아이디 (학번): "1번 학생(#student1)만 빨간 모자 써!" (단 한 명만 지정)
① 태그 (Tag)
p, div, a처럼 태그 이름을 그대로 적습니다. 범위가 너무 커서 주로 블로그 전체의 글씨체나 기본 색상을 정할 때만 씁니다.
p { color: black; }② 클래스 (Class)
이름 앞에 점(.)을 붙입니다. 티스토리 글상자, 버튼 등 비슷하게 생긴 것들을 묶어서 디자인할 때 가장 많이 씁니다. (실무 사용률 90%)
.btn { color: blue; }③ 아이디 (ID)
이름 앞에 우물정(#)을 붙입니다. 한 페이지에 딱 하나만 있어야 합니다. 주로 헤더, 푸터 같은 큼직한 구역을 통째로 잡을 때 씁니다.
#header { color: red; }좁고 구체적으로 부를수록 힘이 더 셉니다.
태그 < 클래스 < ID 순으로 힘이 세기 때문에, 똑같은 곳에 색칠을 지시하면 힘이 센 ID의 색상으로 덮어씌워집니다.
내 맘대로 디자인이 안 바뀐다고 무적 치트키인
color: red !important;를 자꾸 쓰면 나중에 디자인이 꼬여서 수정이 아예 불가능해집니다. 안 바뀐다면 우선순위에서 밀린 것이므로 대상을 더 구체적으로 지목(계층 선택자)해야 합니다. (아래 7번 참고)3. 초보자 1위 실수: Padding vs Margin (박스 모델)
- Content (사진): 액자 안에 들어갈 실제 사진이나 글자입니다.
- Padding (사진과 틀 사이의 여백): 사진을 돋보이게 하려고 사진과 나무틀 사이에 두는 하얀색 여백(매트)입니다. (액자 안쪽 공간)
- Border (나무 틀): 액자를 두르고 있는 단단한 테두리입니다.
- Margin (벽에 걸린 액자 사이의 간격): 벽에 여러 액자를 걸 때, 내 액자와 옆 액자가 떨어져 있는 거리입니다. (액자 바깥 공간)
위 액자가
margin-bottom: 50px;을 가지고, 아래 액자가 margin-top: 50px;을 가지면 총 100px이 떨어질 것 같죠? 아닙니다! 위아래 마진이 만나면 더 큰 값 하나(50px)로 겹쳐버립니다. "어? 왜 간격이 내가 더한 것만큼 안 벌어지지?" 할 때 이 현상을 의심하세요.4. 삽질 방지 치트키: box-sizing
브라우저도 똑같습니다. "가로 300px 박스 만들어줘" 하면, 브라우저는 안에 들어가는 물건(Content)만 300px로 맞추고, 여백(Padding)과 테두리(Border) 두께는 그 밖으로 살을 덧붙여 박스를 뚱뚱하게 만들어 버립니다. 그래서 웹사이트 레이아웃이 다 깨지는 겁니다.
우리가 상식적으로 생각하는 크기, 즉 "테두리 두께까지 몽땅 합쳐서 딱 300px로 만들어!"라고 브라우저에게 명령하는 코드가 바로 box-sizing: border-box; 입니다.
5. 왜 크기가 안 먹히지? (Display 개념)
"폭을 300px로 줬는데 왜 안 변하지?", "왜 위아래로 간격이 안 떨어지지?" 입문자들이 하루 종일 머리를 쥐어뜯는 원인 1순위는 바로 태그가 가진 '성격(Display)'을 몰라서입니다.
| 성격 (Display) | 특징 비유 | 크기/여백 조절 |
|---|---|---|
| Block (블록) | 독방 VIP석. 자기 내용물이 작아도 무조건 가로 한 줄을 통째로 혼자 씁니다. (예: div, p) | ✅ 너비(width), 상하좌우 여백(margin) 모두 맘대로 조절 가능 |
| Inline (인라인) | 일반 합석. 딱 자기 글자 크기만큼만 자리를 차지하고, 옆에 다른 애가 와도 나란히 붙어 앉습니다. (예: span, a) | ❌ 너비 조절 불가능! 위아래 여백(margin)도 무시됨! |
| Inline-block | 혼종. 옆 사람과 나란히 붙어 앉으면서도(Inline 특징), 내 마음대로 덩치(크기)는 키울 수 있는(Block 특징) 성격입니다. | ✅ 옆에 나란히 서면서 + 크기 조절도 다 됨 |
초보자가 가장 많이 하는 질문입니다. 링크를 거는 <a> 태그나 글자색을 바꾸는 <span> 태그에 아무리 너비(width)와 위 여백(margin-top)을 줘봐야 아무 일도 일어나지 않습니다. 태생이 '합석(Inline)'이라서 그렇습니다.
6. 실전 필수: 가운데 정렬 3가지 패턴
가운데 정렬은 상황(어떤 태그 성격인지)에 따라 쓰는 문법이 전혀 다릅니다. 이 3가지만 기계적으로 외워두세요.
7. 티스토리 정밀 타겟팅: 계층 선택자
8. 오늘의 실습: F12 확인 및 복붙 실습
블로그 관리자 → 스킨편집 → HTML 편집 → CSS 탭 맨 아래에 아래 코드를 그대로 복사해서 붙여넣고 '적용'을 눌러보세요.
padding숫자를 50px로 바꿔보세요. 박스 안쪽이 뚱뚱해집니다.border-radius숫자를 50px로 바꿔보세요. 모서리가 둥글게 변합니다.
F12 창 오른쪽(Styles 패널)에 나타난 내 코드를 자세히 보세요.
color: red;(가운데 줄이 쭉 그어져 있다) 👉 원래 있던 스킨 코드보다 내 코드의 '힘(우선순위)'이 약해서 졌다는 뜻입니다. 계층 선택자로 주소를 더 길게 적어주세요.- (내가 쓴 코드가 아예 안 보인다) 👉 클래스 이름 앞에 점(.)을 빼먹었거나 오타가 난 겁니다.
☑️ Day 4 완료 체크리스트
box-sizing: border-box를 쓰면 상자 크기 맞추기가 훨씬 쉬워진다는 걸 설명할 수 있다.❓ 초보자가 가장 많이 하는 질문 (FAQ)
A. 4가지 중 하나일 확률이 99%입니다.
1. 캐시 문제: 브라우저가 옛날 디자인을 붙잡고 있습니다. (해결: 강력 새로고침 Ctrl+Shift+R)
2. 선택자 오타: 클래스 이름 앞의 점(.)을 빼먹었거나 스펠링을 틀렸습니다.
3. 우선순위 밀림: 기존 스킨의 CSS가 힘이 더 세서 내 명령이 먹히지 않았습니다. (해결: 계층을 더 길게 써보세요)
4. Display 성격: inline 요소에 크기나 위아래 여백을 주려 했습니다. (해결:
display: inline-block; 추가)'코딩 > 웹디자인' 카테고리의 다른 글
| AI를 이용한 티스토리 웹디자인 공부 - [DAY 3] HTML → Tistory 연결 (0) | 2026.04.23 |
|---|---|
| AI를 이용한 티스토리 웹디자인 공부 - [DAY 2] DOM 트리와 시맨틱 태그 (0) | 2026.04.20 |
| AI를 이용한 티스토리 웹디자인 공부 - [DAY 1] HTML 가이드 (0) | 2026.04.16 |