CSS (Cascading Style Sheets)는 HTML 문서의 스타일을 정의하고 웹 페이지의 시각적 표현을 제어하는 데 사용됩니다. CSS를 단계별로 학습하면 점진적으로 개념을 이해하고 실습할 수 있습니다.
1단계: CSS 기본 이해하기
1. CSS 개념
- CSS: 웹 페이지의 스타일을 정의하는 언어입니다.
- 선택자: 스타일을 적용할 HTML 요소를 선택합니다.
- 속성(Property)과 값(Value): 스타일 속성과 그에 대한 값을 정의합니다.
2. CSS 기본 구조
CSS 코드의 기본 구조는 다음과 같습니다:
선택자 {
속성: 값;
}
3. CSS 작성 방법
- 인라인(In-line) 스타일: HTML 요소에 직접 스타일을 정의합니다.
- 내부(Internal) 스타일 시트: HTML 문서의
<head>
섹션에<style>
태그를 사용합니다. - 외부(External) 스타일 시트: 별도의 CSS 파일을 작성하고 HTML 문서에 링크합니다.
예시:
인라인 스타일:
<p style="color: red;">This is a red paragraph.</p>
내부 스타일 시트:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Internal CSS Example</title> <style> p { color: blue; } </style> </head> <body> <p>This is a blue paragraph.</p> </body> </html>
외부 스타일 시트:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>External CSS Example</title> <link rel="stylesheet" href="styles.css"> </head> <body> <p>This is a paragraph styled by an external CSS file.</p> </body> </html>
styles.css:
p { color: green; }
2단계: CSS 선택자와 특성 이해하기
1. 기본 선택자
태그 선택자(Tag Selector): HTML 태그를 선택합니다.
p { color: blue; }
클래스 선택자(Class Selector): 특정 클래스를 가진 요소를 선택합니다. 클래스 이름 앞에
.
를 붙입니다..highlight { background-color: yellow; }
아이디 선택자(ID Selector): 특정 아이디를 가진 요소를 선택합니다. 아이디 이름 앞에
#
를 붙입니다.#main-header { font-size: 24px; }
2. 복합 선택자와 조합자
그룹 선택자(Group Selector): 여러 선택자에 동일한 스타일을 적용합니다.
h1, h2, h3 { color: navy; }
자손 선택자(Descendant Selector): 특정 요소의 모든 자손 요소를 선택합니다.
.container p { color: gray; }
자식 선택자(Child Selector): 특정 요소의 직계 자식을 선택합니다.
.container > p { color: gray; }
형제 선택자(Sibling Selector): 특정 요소와 형제 관계에 있는 요소를 선택합니다.
h1 + p { margin-top: 0; }
3. 속성 선택자
- 특정 속성 값을 가진 요소 선택:
input[type="text"] { border: 1px solid #ccc; }
3단계: 텍스트와 글꼴 스타일링
1. 텍스트 색상과 정렬
텍스트 색상:
color
속성을 사용합니다.p { color: #333; }
텍스트 정렬:
text-align
속성을 사용합니다.p { text-align: center; }
2. 글꼴 설정
글꼴 패밀리:
font-family
속성을 사용합니다.body { font-family: Arial, sans-serif; }
글꼴 크기:
font-size
속성을 사용합니다.h1 { font-size: 2em; }
글꼴 두께:
font-weight
속성을 사용합니다.p { font-weight: bold; }
3. 텍스트 장식과 변환
텍스트 장식:
text-decoration
속성을 사용합니다.a { text-decoration: none; }
텍스트 변환:
text-transform
속성을 사용합니다.h2 { text-transform: uppercase; }
4단계: 박스 모델 이해하기
1. 박스 모델 기본
- HTML 요소는 콘텐츠, 패딩, 테두리, 마진으로 구성된 박스 모델을 따릅니다.
- 콘텐츠(Content): 요소의 실제 내용입니다.
- 패딩(Padding): 콘텐츠와 테두리 사이의 내부 여백입니다.
- 테두리(Border): 요소의 경계입니다.
- 마진(Margin): 요소와 다른 요소 사이의 외부 여백입니다.
2. 박스 모델 속성
패딩:
padding
속성을 사용하여 설정합니다..box { padding: 20px; }
테두리:
border
속성을 사용하여 설정합니다..box { border: 1px solid #000; }
마진:
margin
속성을 사용하여 설정합니다..box { margin: 10px; }
박스 크기 조정:
box-sizing
속성을 사용하여 박스 모델의 크기 조정 방식을 설정합니다..box { box-sizing: border-box; }
5단계: 레이아웃 구성
1. 디스플레이 속성
- 블록(Block) 요소와 인라인(Inline) 요소의 차이를 이해합니다.
- 블록 요소: 항상 새로운 줄에서 시작하며, 가로 전체를 차지합니다.
- 인라인 요소: 콘텐츠의 폭만큼 차지하며, 줄 바꿈을 하지 않습니다.
.block-element {
display: block;
}
.inline-element {
display: inline;
}
2. 플렉스박스(Flexbox) 레이아웃
플렉스박스를 사용하면 보다 효율적인 레이아웃 구성이 가능합니다.
컨테이너 속성:
.flex-container { display: flex; justify-content: center; align-items: center; }
아이템 속성:
.flex-item { flex: 1; }
6단계: 반응형 웹 디자인
1. 미디어 쿼리(Media Queries)
- 미디어 쿼리를 사용하여 다양한 화면 크기에 대응하는 스타일을 적용합니다.
@media (max-width: 600px) {
.container {
flex-direction: column;
}
}
2. 유연한 레이아웃
- 퍼센트(%)와 뷰포트 단위(vw, vh)를 사용하여 유연한 레이아웃을 만듭니다.
.container {
width: 100%;
height: 100vh;
}
7단계: 애니메이션과 전환
1. 전환(Transition)
transition
속성을 사용하여 요소의 상태 변화에 애니메이션 효과를 적용합니다.
.button {
background-color: blue;
transition: background-color 0.3s ease;
}
.button:hover {
background-color: green;
}
2. 애니메이션(Animation)
@keyframes
규칙을 사용하여 복잡한 애니메이션을 정의합니다.
@keyframes slide-in {
from {
transform: translateX(-100%);
}
to {
transform: translateX(0);
}
}
.element {
animation: slide-in 0.5s ease-in-out;
}
8단계: 실습과 프로젝트
1. 간단한 웹 페이지 스타일링
- 기본 HTML 페이지에 스타일을 적용하여 완성된 웹 페이지를 만듭니다.
2. 프로젝트 예제
- 포트폴리오 사이트, 블로그 레이아웃 등 실제 프로젝트를 만들어 봅니다.
'Frontend > CSS' 카테고리의 다른 글
[CSS] CSS 규칙 (0) | 2024.06.08 |
---|---|
[CSS] CSS 예제(심화) (0) | 2024.06.08 |
[CSS] CSS 심화2 (0) | 2024.06.08 |
[CSS] CSS 심화1 (0) | 2024.06.08 |
[CSS] CSS 예제 (0) | 2024.06.08 |