본문으로 건너뛰기

CSS3 스타일 시트

1. 개요 및 핵심 개념

CSS(Cascading Style Sheets)는 HTML 문서의 외형을 지정하는 표준 웹 개발 기술로, 웹 페이지의 디자인을 쉽고 효율적으로 관리할 수 있게 해줍니다.

CSS란?

  • Cascading Style Sheet의 약자
  • 색상, 폰트, 크기 등 HTML 요소의 시각적 스타일을 지정
  • 웹 개발의 3대 축:
    • HTML: 문서의 구조와 내용
    • CSS: 문서의 스타일(디자인)
    • JavaScript: 문서의 동작(인터랙션)

CSS의 주요 특징

  • 선택자(Selector): 스타일을 적용할 HTML 요소를 선택
  • 삽입 방법: 외부, 내부, 인라인 등 다양한 방식으로 적용 가능
  • 텍스트 스타일링: 색상, 폰트, 정렬, 그림자 등 다양한 속성 제공

CSS는 웹 페이지의 시각적 표현을 담당하는 핵심 기술로, HTML 및 JavaScript와 함께 현대 웹 개발의 표준을 이룹니다.
CSS3는 애니메이션, 변환, 다양한 효과 등 고급 기능을 포함하여 웹 디자인의 가능성을 크게 확장하고 있습니다.


2. CSS의 필요성과 장점

CSS는 웹 페이지의 디자인과 유지 관리를 효율적으로 만들어주는 핵심 기술입니다.
HTML만으로 스타일을 지정하던 시절에는 각 요소마다 개별적으로 속성을 지정해야 했기 때문에, 웹 페이지의 수정과 관리가 매우 번거로웠습니다.
CSS의 도입으로 다음과 같은 이점이 생겼습니다.

CSS의 필요성

  • 구조와 디자인의 분리
    HTML은 문서의 구조와 내용을 담당하고, CSS는 스타일(디자인)을 담당하여 역할을 분리합니다.
  • 유지 보수의 용이성
    한 번의 CSS 파일 수정만으로 전체 웹 사이트의 스타일을 일괄 변경할 수 있습니다.
  • 일관성 있는 디자인
    여러 페이지에 동일한 스타일을 적용하여 사이트 전체의 일관성을 유지할 수 있습니다.
  • 다양한 사용자 환경 지원
    다양한 기기와 환경(PC, 모바일 등)에 맞는 스타일을 손쉽게 적용할 수 있습니다.

CSS의 주요 장점

  • 웹 디자인의 자유로움
    텍스트의 크기, 글꼴, 줄 간격, 배경, 색상, 배열 위치 등 다양한 스타일을 자유롭게 지정할 수 있습니다.
  • 작업 시간 단축
    반복적인 스타일 지정 작업을 줄이고, 전체 문서에 빠르게 스타일을 적용할 수 있습니다.
  • 대규모 사이트 관리 용이
    대형 웹사이트에서도 효율적으로 스타일을 관리할 수 있습니다.
  • 접근성 및 사용자 경험 향상
    반응형 웹 디자인 등 다양한 접근성 기능을 쉽게 구현할 수 있습니다.

요약:
CSS는 웹 페이지의 디자인을 쉽고 효율적으로 관리할 수 있게 하며, 유지 보수와 확장성, 일관성 있는 웹 디자인을 가능하게 합니다.


3. CSS 문법 및 구성

CSS는 HTML 요소의 스타일을 지정하는 명령어의 집합입니다. 기본 구조와 작성 방법은 다음과 같습니다.

CSS의 기본 구조

  • 선택자(Selector): 스타일을 적용할 HTML 요소를 지정합니다.
  • 선언부(Declaration Block): 중괄호 {} 안에 스타일 속성과 값을 쌍으로 작성합니다.
  • 속성(Property)와 값(Value): 각 스타일은 속성: 값; 형태로 작성합니다.
선택자 {
속성1:1;
속성2:2;
}

예시

p {
background-color: yellow;
color: blue;
}

위 예시는 모든 <p> 요소의 배경색을 노란색, 글자색을 파란색으로 지정합니다.

주석(Comment)

  • CSS에서 주석은 /* ... */ 형태로 작성합니다.
  • 주석은 코드 실행에 영향을 주지 않으며, 설명이나 메모를 남길 때 사용합니다.
/* 이 부분은 주석입니다 */

작성 위치

  • 일반적으로 CSS는 HTML 문서의 <head> 태그 내부에 <style>...</style>로 작성하거나, 별도의 .css 파일로 분리하여 사용합니다.
<head>
<style>
/* CSS 코드 작성 */
</style>
</head>

Tip: CSS를 별도의 파일로 관리하면 여러 페이지에서 동일한 스타일을 쉽게 적용하고, 유지보수가 편리해집니다.


4. CSS 선택자 (Selector)

CSS 선택자는 HTML 요소를 선택하여 스타일을 적용하는 핵심 도구입니다. 다양한 선택자를 조합해 원하는 요소에 정밀하게 스타일을 지정할 수 있습니다.

주요 선택자 종류

선택자 유형문법 예시설명
타입 선택자p { ... }태그명으로 요소 선택
예: 모든 <p> 요소에 적용
전체 선택자* { ... }모든 요소에 스타일 적용
예: * { color: blue; }
아이디 선택자#header { ... }특정 id 속성의 요소 선택
예: <div id="header">
클래스 선택자.menu { ... }특정 class 속성의 요소(여러 개 가능) 선택
예: <li class="menu">
선택자 그룹h1, h2, h3 { ... }여러 선택자에 동일 스타일 적용
후손 결합자div em { ... }특정 요소 내부의 후손 요소 선택
예: div 안의 모든 em
자식 결합자ul > li { ... }특정 요소의 직계 자식만 선택
형제 결합자h2 + p { ... }특정 요소 바로 다음 형제 요소 선택
의사 클래스a:hover { ... }특정 상태(마우스 오버 등)에서 요소 선택
속성 선택자input[type="text"] { ... }특정 속성을 가진 요소 선택

선택자 예시

/* 타입 선택자 */
p {
background-color: yellow;
}

/* 전체 선택자 */
* {
color: blue;
}

/* 아이디 선택자 */
#main-title {
font-size: 2em;
}

/* 클래스 선택자 */
.highlight {
background: #ff0;
}

/* 선택자 그룹 */
h1,
h2,
h3 {
font-family: sans-serif;
}

/* 후손 결합자 */
body em {
color: red;
}

/* 자식 결합자 */
body > h3 {
color: blue;
}

/* 의사 클래스 */
a:hover {
text-decoration: underline;
}

/* 속성 선택자 */
input[disabled] {
background: #eee;
}

Tip: 선택자를 적절히 조합하면, 복잡한 구조의 HTML에서도 원하는 요소에만 정확하게 스타일을 적용할 수 있습니다.


5. CSS 삽입 방법

CSS는 HTML 문서에 다음 세 가지 주요 방식으로 삽입할 수 있습니다.

외부 스타일 시트 (External Style Sheet)

  • 별도의 .css 파일에 스타일을 작성하고, HTML 문서의 <head> 영역에서 <link> 태그로 연결합니다.
  • 여러 웹 페이지에서 동일한 스타일을 공유할 수 있어 유지보수와 일관성에 매우 유리합니다.
<head>
<link rel="stylesheet" href="styles.css" />
</head>

내부 스타일 시트 (Internal Style Sheet)

  • HTML 문서의 <head> 태그 내부에 <style> 태그를 사용하여 CSS를 직접 작성합니다.
  • 해당 HTML 파일에만 스타일이 적용됩니다.
<head>
<style>
p {
color: green;
}
</style>
</head>

인라인 스타일 시트 (Inline Style Sheet)

  • HTML 요소의 style 속성에 직접 CSS를 작성합니다.
  • 특정 요소에만 스타일을 적용할 때 사용하지만, 유지보수가 어렵고 권장되지 않습니다.
<p style="color: blue; font-size: 18px;">인라인 스타일 예시</p>

외부 스타일 시트를 사용하면 여러 페이지에서 동일한 스타일을 쉽게 적용하고, 전체 사이트의 디자인을 한 번에 변경할 수 있습니다.

다중 스타일 시트 및 우선순위

여러 스타일 시트가 하나의 요소에 적용될 경우, 다음과 같은 우선순위가 적용됩니다 (아래로 갈수록 우선순위가 낮아집니다):

  1. 인라인 스타일 시트 (style 속성)
  2. 내부 스타일 시트 (<style> 태그)
  3. 외부 스타일 시트 (<link> 태그)
  4. 브라우저 기본 스타일

참고:
상속 가능한 속성의 경우, 조상 요소에 지정된 스타일이 자식 요소에 적용될 수 있습니다.

여러 스타일 시트가 하나의 요소에 적용될 경우, 다음과 같은 우선순위를 따릅니다 (아래로 갈수록 우선순위가 낮음).

  1. 인라인 스타일 시트
  2. 헤드 섹션에 저장된 내부 스타일 시트
  3. 외부 스타일 시트
  4. 웹 브라우저 디폴트값

상속: 조상 요소에 지정된 속성은 후손 노드로 상속됩니다. 이는 보다 간결하게 CSS를 작성할 수 있게 합니다.


6. 텍스트의 색상, 폰트, 스타일

텍스트는 웹 페이지에서 큰 비중을 차지하며, CSS의 폰트 속성은 페이지 디자인에 중요한 영향을 미칩니다.

텍스트 색상

  • 색상 표현: 빛의 삼원색(RGB: Red, Green, Blue)을 혼합하여 표현
  • 표현 방법:
    • 이름: "red"
    • 16진수: #FF0000
    • 10진수(RGB 값): rgb(255,0,0) 또는 %로 표현: rgb(100%,0%,0%)
  • 안전한 색상(Web Safe Color): 과거 256가지 색상만 지원되던 시절, 모든 컴퓨터에서 지원되던 약 216가지 색상

텍스트 폰트

  • 주요 속성: font, font-family, font-size, font-style, font-weight
  • font-family: 여러 폰트 이름을 쉼표로 나열
  • Serif와 Sans-serif:
    • Serif: 글자의 끝에 삐침
    • Sans-serif: 삐침 없음
  • 폰트 패밀리: Serif, Sans-serif, Monospace, Cursive, Fantasy 등
  • 웹 폰트: @font-face 문법 사용
  • font-size: 크기 단위로 px, %, em, 키워드 사용 가능
  • font-weight: 굵기(bold, normal, 숫자)
  • font-style: 이탤릭체(normal, italic, oblique)
  • 폰트 축약 기법: font 속성 사용, 순서와 필수 항목(font-size, font-family) 주의

텍스트 스타일 설정

  • color: 텍스트 색상
  • text-align: 수평 정렬(왼쪽, 중앙, 오른쪽, 양쪽)
  • text-decoration: 줄(위, 가운데, 밑줄)
  • text-transform: 대소문자 변환
  • text-shadow: 그림자(이동거리, 흐림, 색상)
  • word-wrap: 긴 단어 자동 줄넘김
  • 다중 컬럼: column-count, column-gap, column-rule로 여러 단 구성