Delvelop/CSS

[새싹x코딩온] CSS 완벽 정리 3부 - CSS 폰트 & 텍스트 스타일링 (수정)

ChipTuneX 2025. 3. 19. 08:32

CSS 완벽 정리 3부 – CSS 폰트 & 텍스트 스타일링

웹사이트를 디자인할 때 CSS 속성을 제대로 이해하면 텍스트를 가독성 있게 조절하고,
불필요한 요소를 숨기거나, 넘치는 콘텐츠를 효과적으로 처리할 수 있습니다.

이번 글에서는 CSS 속성(폰트 스타일, 텍스트 속성, 요소 숨김, 오버플로우 처리 등)  쉽게 설명하고,
초보자도 이해할 수 있도록 예제 코드와 함께 자세히 정리
해보겠습니다! 🚀


✅ 1. CSS 속성 – 폰트 스타일 (font 관련 속성)

폰트 스타일을 설정하면 글자의 크기, 굵기, 줄 간격, 폰트 종류 등을 조절할 수 있습니다.
아래 속성들을 조합하면 가독성이 뛰어난 웹페이지를 만들 수 있습니다.

속성 설명 예제
font-weight 글자의 굵기 설정 font-weight: bold;
font-size 글자의 크기 설정 font-size: 16px;
line-height 줄 간격 설정 line-height: 1.5;
font-family 폰트 스타일 설정 font-family: Arial, sans-serif;

 1) font-weight – 글자 굵기 조절

글자의 두께를 설정할 수 있습니다.

font-weight 설명

p {
  font-weight: bold;
}

✔️ HTML 코드

<p>이 문장은 굵게 표시됩니다.</p>

✔️ 결과: 텍스트가 굵게 표시됨

See the Pen font-weight by KIM (@JINKYOUNG) on CodePen.

 

🚀 Tip!

  • font-weight: 100; (얇음) → font-weight: 900; (가장 두꺼움)
  • font-weight: normal; (기본) → font-weight: bold; (굵게)

 2) font-size – 글자 크기 조절

글자의 크기를 설정할 수 있습니다.

font-size 설명

h1 {
  font-size: 24px;
}

✔️ HTML 코드
<h1>이 문장은 24px 크기로 표시됩니다.</h1>
 

✔️ 결과: <h1> 태그의 글자가 24px 크기로 표시

See the Pen font-size by KIM (@JINKYOUNG) on CodePen.

 

🚀 Tip!

  • font-size: 16px; (기본 크기)
  • font-size: 1.5em; (현재 크기의 1.5배)

 3) line-height – 줄 간격 조절

줄 간격을 조정하면 가독성이 좋아집니다.

line-height 설명

p {
  line-height: 1.8;
}
 

✔️ HTML 코드

<p>이 문장은 줄 간격이 1.8배 적용되었습니다.</p>
 

✔️ 결과: 줄 간격이 기본보다 넓어짐 (1.8배)

See the Pen line-height by KIM (@JINKYOUNG) on CodePen.


🚀 Tip!

  • 일반적으로 line-height: 1.5 ~ 2 정도가 가독성 좋음

font-size / line-height 예제


 4) font-family – 폰트 스타일 지정

웹사이트에서 사용할 폰트를 설정합니다.

font-family 설명

p {
  font-family: "Arial", sans-serif;
}
 

✔️ HTML 코드

<p>이 문장은 Arial 폰트로 표시됩니다.</p>
 

✔️ 결과: Arial 폰트가 적용됨, Arial이 없으면 sans-serif 계열 폰트 사용

See the Pen font-family by KIM (@JINKYOUNG) on CodePen.


🚀 Tip!

  • 영문 폰트 예시: "Helvetica", "Arial", sans-serif
  • 한글 폰트 예시: "맑은 고딕", "Nanum Gothic", sans-serif

폰트 계열 예


✅ 2. 구글폰트 & 눈누폰트 사용법

웹폰트를 사용하면 기본 폰트보다 더 개성 있는 디자인을 적용할 수 있습니다.


 1) 구글폰트 사용법

1️⃣ Google Fonts 접속
2️⃣ 원하는 폰트 선택 후 @import 또는 <link> 방식으로 적용

@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');

p {
  font-family: 'Roboto', sans-serif;
}
 

✔️ 결과: "Roboto" 폰트가 적용됨

See the Pen 구글폰트 사용법 by KIM (@JINKYOUNG) on CodePen.


 2) 눈누폰트 사용법 (한글 폰트)

1️⃣ 눈누폰트 접속
2️⃣ 원하는 폰트 선택 후 @font-face 방식으로 적용

@font-face {
  font-family: 'UhBeeSe_hyun';
  src: url('https://cdn.jsdelivr.net/gh/webfontworld/uhbeesehyun/UhBeeSe_hyun.woff2') format('woff2');
}

p {
  font-family: 'UhBeeSe_hyun', sans-serif;
}
 

✔️ 결과: "UhBeeSe_hyun" 폰트가 적용됨

See the Pen 눈누폰트 사용법 by KIM (@JINKYOUNG) on CodePen.

 


✅ 3. 문자에 대한 속성 (Text Properties)

CSS에서 텍스트의 색상, 정렬, 장식 효과를 설정하는 속성들을 알아보겠습니다.
이 속성들을 활용하면 더 가독성이 뛰어난 디자인을 만들 수 있습니다.

속성 설명 예제
color 텍스트 색상을 변경 color: red;
text-align 텍스트 정렬을 설정 text-align: center;
text-decoration 밑줄, 취소선 등 설정 text-decoration: underline;

✅ 1) color – 텍스트 색상 변경

color 설명

 CSS 예제

.red-text {
  color: red;
}

.blue-text {
  color: blue;
}
 

 HTML 코드

<p class="red-text">이 문장은 빨간색입니다.</p>
<p class="blue-text">이 문장은 파란색입니다.</p>


✔️ 결과: 

See the Pen color by KIM (@JINKYOUNG) on CodePen.

 

 설명:

  • color: red; → 텍스트 색상이 빨간색으로 변경됨
  • color: blue; → 텍스트 색상이 파란색으로 변경됨

🚀 Tip!
CSS에서는 16진수 색상 코드(#ff0000), RGB(rgb(255, 0, 0)), HSL(hsl(0, 100%, 50%)) 등 다양한 방식으로 색상을 지정할 수 있습니다.

.hex-color {
  color: #ff5733; /* 주황색 */
}

.rgb-color {
  color: rgb(0, 128, 0); /* 초록색 */
}

.hsl-color {
  color: hsl(240, 100%, 50%); /* 파란색 */
}

✅ 2) text-align – 텍스트 정렬

text-align 설명


 CSS 예제

.left-align {
  text-align: left;
}

.center-align {
  text-align: center;
}

.right-align {
  text-align: right;
}

.justify-align {
  text-align: justify;
}


 HTML 코드

<p class="left-align">이 문장은 왼쪽 정렬됩니다.</p>
<p class="center-align">이 문장은 가운데 정렬됩니다.</p>
<p class="right-align">이 문장은 오른쪽 정렬됩니다.</p>
<p class="justify-align">
  이 문장은 양쪽 정렬됩니다. 텍스트가 컨테이너의 너비를 꽉 채우도록 정렬됩니다.
</p>


✔️ 결과: 

See the Pen text-align by KIM (@JINKYOUNG) on CodePen.


 설명:

  • text-align: left;  왼쪽 정렬 (기본값)
  • text-align: center;  가운데 정렬
  • text-align: right;  오른쪽 정렬
  • text-align: justify;  양쪽 정렬 (텍스트가 양쪽 끝까지 균등하게 정렬됨)

🚀 Tip!

  • text-align: justify;는 신문 기사처럼 정렬할 때 유용
  • text-align 속성은 블록 요소에만 적용됨 (인라인 요소에는 적용되지 않음)

✅ 3) text-decoration – 밑줄, 취소선, 윗줄 등 설정

text-decoration 설명


 CSS 예제

.underline {
  text-decoration: underline;
}

.overline {
  text-decoration: overline;
}

.line-through {
  text-decoration: line-through;
}

.none {
  text-decoration: none;
}


 HTML 코드

<p class="underline">이 문장은 밑줄이 있습니다.</p>
<p class="overline">이 문장은 윗줄이 있습니다.</p>
<p class="line-through">이 문장은 취소선이 있습니다.</p>
<a href="#" class="none">이 링크는 밑줄이 없습니다.</a>
 

✔️ 결과: 

See the Pen text-decoration by KIM (@JINKYOUNG) on CodePen.



 설명:

  • text-decoration: underline;  밑줄 추가
  • text-decoration: overline;  윗줄 추가
  • text-decoration: line-through;  취소선 추가
  • text-decoration: none;  링크의 기본 밑줄 제거

🚀 Tip!
웹사이트에서 링크의 기본 밑줄을 없애고 싶다면 아래처럼 사용합니다.

a {
  text-decoration: none;
}

✅ 4. 요소를 숨기는 3가지 속성

속성 설명 차이점
opacity: 0; 요소를 투명하게 만듦 (공간 차지 O) 클릭 가능
visibility: hidden; 요소를 보이지 않게 함 (공간 차지 O) 클릭 불가
display: none; 요소를 아예 제거 (공간 차지 X) 클릭 불가

 1) opacity: 0; – 요소를 투명하게 만들기 (공간은 유지됨)

opacity 설명

 예제: 버튼을 투명하게 만들기

.hidden-opacity {
  opacity: 0;
}
 

✔️ HTML 코드

<button class="hidden-opacity">이 버튼은 보이지 않지만 클릭할 수 있어요!</button>
<p>요소를 투명하게 만듦 (공간 차지 O)</p>

✔️ 결과:

 

See the Pen opacity: 0; by KIM (@JINKYOUNG) on CodePen.

 

✔️ 설명:

  • 요소는 완전히 투명해지지만, 공간은 그대로 유지됩니다.
  • 따라서 보이지 않지만, 여전히 클릭 가능합니다.

 2) visibility: hidden; – 요소를 숨기기 (공간은 유지되지만 클릭 불가능)

 예제: 텍스트 숨기기

.hidden-visibility {
  visibility: hidden;
}
 

✔️ HTML 코드

<p class="hidden-visibility">이 문장은 화면에 보이지 않지만, 공간은 차지합니다.</p>
<p>요소를 보이지 않게 함 (공간 차지 O)</p>

✔️ 결과:

 

See the Pen visibility: hidden; by KIM (@JINKYOUNG) on CodePen.

 

✔️ 설명:

  • 요소가 눈에 보이지 않지만, 공간은 그대로 차지합니다.
  • opacity: 0;과 달리 클릭이 불가능합니다.

 3) display: none; – 요소를 완전히 삭제 (공간도 사라짐)

 예제: 이미지를 숨기기

.hidden-display {
  display: none;
}

✔️ HTML 코드

<img class="hidden-display" src="image.jpg" alt="이 이미지는 화면에서 완전히 사라집니다.">
<p>요소를 아예 제거 (공간 차지 X)</p>
 

✔️ 결과:

 

See the Pen display: none; by KIM (@JINKYOUNG) on CodePen.

 

✔️ 설명:

  • 요소가 완전히 사라지며, 공간도 차지하지 않음
  • 보이지 않는 것은 물론, 클릭도 불가능

🚀 Tip!
display: none;을 사용하면 레이아웃이 변경될 수 있으므로 주의해서 사용해야 합니다.

CSS 속성 3형제


✅ 5. overflow – 내용이 넘칠 때 처리 방법

속성 설명 예제
overflow 내용이 넘칠 때 처리 overflow: scroll;
overflow-x 가로 방향 오버플로우 처리 overflow-x: auto;
overflow-y 세로 방향 오버플로우 처리 overflow-y: hidden;

 1) overflow: auto; – 내용이 넘칠 경우 자동으로 스크롤 생성

overflow

 예제: 박스 안에서 내용이 넘치면 자동으로 스크롤 표시

.box-auto {
  width: 200px;
  height: 100px;
  border: 1px solid black;
  overflow: auto;
}

✔️ HTML 코드

<div class="box-auto">
  이 박스 안에는 긴 텍스트가 들어갑니다. 너무 길어서 넘칠 경우, 자동으로 스크롤이 생성됩니다.
  이 박스 안에는 긴 텍스트가 들어갑니다. 너무 길어서 넘칠 경우, 자동으로 스크롤이 생성됩니다.
  이 박스 안에는 긴 텍스트가 들어갑니다. 너무 길어서 넘칠 경우, 자동으로 스크롤이 생성됩니다.
  이 박스 안에는 긴 텍스트가 들어갑니다. 너무 길어서 넘칠 경우, 자동으로 스크롤이 생성됩니다.
  이 박스 안에는 긴 텍스트가 들어갑니다. 너무 길어서 넘칠 경우, 자동으로 스크롤이 생성됩니다.
</div>

✔️ 결과:

  • 텍스트가 박스 크기를 초과하면 스크롤이 자동 생성됨

See the Pen overflow by KIM (@JINKYOUNG) on CodePen.


🚀 Tip!

  • overflow: auto;는 내용이 넘칠 때만 스크롤을 표시
  • 불필요한 스크롤을 방지하는 데 유용

overflow 예시 #1
overflow 예시 #2

 


 2) overflow-x – 가로 방향 오버플로우 처리

 예제: 가로 스크롤 추가

.box-scroll-x {
  width: 200px;
  white-space: nowrap;
  border: 1px solid black;
  overflow-x: scroll;
}
 

✔️ HTML 코드

<div class="box-scroll-x">
  긴 텍스트가 가로로 넘치면 스크롤이 생깁니다. → → →
</div>
 

✔️ 결과:

  • 가로로 내용이 넘칠 경우 가로 스크롤이 표시됨

See the Pen overflow-x by KIM (@JINKYOUNG) on CodePen.

 

🚀 Tip!

  • white-space: nowrap;을 사용하면 줄바꿈 없이 가로로만 텍스트 출력

 3) overflow-y – 세로 방향 오버플로우 처리

 예제: 세로 스크롤 추가

.box-scroll-y {
  width: 200px;
  height: 100px;
  border: 1px solid black;
  overflow-y: scroll;
}
 

✔️ HTML 코드

<div class="box-scroll-y">
  텍스트가 박스의 높이를 초과하면 세로 스크롤이 표시됩니다. 
  더 많은 텍스트를 추가하면 자동으로 스크롤이 생깁니다.
  텍스트가 박스의 높이를 초과하면 세로 스크롤이 표시됩니다. 
  더 많은 텍스트를 추가하면 자동으로 스크롤이 생깁니다.
</div>
 

✔️ 결과:

  • 세로로 내용이 넘칠 경우 세로 스크롤이 표시됨

See the Pen overflow-y by KIM (@JINKYOUNG) on CodePen.

 

🚀 Tip!

  • overflow-y: hidden;을 사용하면 넘치는 부분을 숨길 수도 있음

🎯 정리 – CSS 주요 속성 활용법

 폰트 설정  font-size, font-weight, line-height, font-family
 텍스트 속성  color, text-align, text-decoration
 요소 숨기기  opacity, visibility, display
 오버플로우 처리  overflow, overflow-x, overflow-y