IT/Frontend

CSS 2

_KH_ 2025. 2. 5. 23:51

[ 1. 글꼴 ]

 

① font-family : 글꼴 지정 

font-family:<글꼴 이름> | [<글꼴 이름>, <글꼴 이름>]

 

□ 사용자의 시스템에 지정한 글꼴이 설치되어 있지 않을 때를 대비하여 ,(콤마)를 통해 여러 개의 글꼴을 지정함

 

body { font-family : "맑은 고딕", 돋움, 굴림 }

* 맑은 고딕에만 쌍따옴표("")가 있는 이유는 두 단어 이상으로 된 이름을 갖고 있기 때문에.

□  3개의 글꼴 지정. 만약 맑은 고딕이 없다면 돋움, 돋움도 없다면 굴림을 지정한다.

 


② font-size : 글자 크기 지정

font-size : <절대 크기> | <상대 크기> | <크기> | <백분율>

□ 보통 px, pt, em, rem, ex 등의 단위를 사용하여 크기를 지정한다.

p { font-size : 16px; }

③ font-style : 이탤릭체 사용

□ italic, oblique가 있으나, 웹에서는 주로 italic 사용

font-style: normal | italic | oblique

④ font-weight : 글자 굵기 지정

□ 예약어나 숫자값으로 지정 가능

font-weight : normal | bold | bolder | lighter | 100 | 200 | ... | 800 | 900

※ 예제

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>상품 소개 페이지</title>
  <style>
    body{
      font-size: 20px;   /* 전체 글자 크기 */
    }
    h1 { 
      font-family: 바탕;  /* 글꼴 */
      font-size: 3em;  /* 글자 크기 */
    } 
    .accent {
      font-size:150%;  /* 글자 크기 */
      font-weight: 800;  /* 글자 굵기 */ 
    }
    .italic{
      font-style: italic;  /* 글자 스타일 */
    }
  </style>
</head>
<body>
  <h1>레드향</h1>
  <p>껍질에 붉은 빛이 돌아 <span class="accent">레드향</span>이라 불린다.</p>
  <p>레드향은 한라봉과 귤을 교배한 것으로</p>
  <p class="italic">일반 귤보다 2~3배 크고, 과육이 붉고 통통하다.</p>    
</body>
</html>


[ 2. 텍스트 스타일 ]

① color : 글자색 지정

□ 16진수, rgb, hsl, 색상 이름 사용

color : <색상>

* 16진수를 사용할 시 16진수 값을 모두 기억하고 있을 수 없으니 색상 값을 추출해주는 '컬러 피커' 서치하여 사용하기

 

※ 16진수, hsl, 색상 이름 사용하기

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>상품 소개 페이지</title>
  <style>
    h1 { 
      color:#0000ff;   /* 16진수 표기법 */
    } 
    p {
      color:green;  /* 색상 이름 */
    }
    .accent {
      color:hsl(0, 100%, 50%);  /* hsl 표기법 */
      font-weight:bold;
    }
  </style>
</head>
<body>
  <h1>레드향</h1>
  <p>껍질에 붉은 빛이 돌아 <span class="accent">레드향</span>이라 불린다.</p>
  <p>레드향은 한라봉과 귤을 교배한 것으로</p>
  <p>일반 귤보다 2~3배 크고, 과육이 붉고 통통하다.</p>    
</body>
</html>


② text-align : 텍스트 정렬

■ 문단 텍스트 정렬 방법 지정

□ 왼쪽/오른쪽/양쪽/가운데 정렬 등..

□ 지정하지 않을 경우 왼쪽 정렬이 기본값

text-align : start | end | left | right | center | justify | match-parent
start 현재 텍스트 줄의 시작 위치에 맞춰 문단 정렬
end 현재 텍스트 줄의 끝 위치에 맞춰 문단 정렬
left 왼쪽에 맞추어 문단 정렬
right 오른쪽에 맞춰 문단 정렬
center 가운데에 맞춰 문단 정렬
justify 양쪽에 맞춰 문단 정렬
match-parent 부모 요소를 따라 문단 정렬

 

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8">
    <title>text-align</title>
    <style>
      p {
        width:600px;
        border:1px solid #222;
        padding:10px;
        margin:10px;
      }
      .center {
        text-align: center;
      }
      .justify {
        text-align: justify;
      }
    </style>
  </head>
  <body>    
    <p>껍질에 붉은 빛이 돌아 레드향이라 불린다. 레드향은 한라봉과 귤을 교배한 것으로 일반 귤보다 2~3배 크고, 과육이 붉고 통통하다.</p>
    <p class="center">껍질에 붉은 빛이 돌아 레드향이라 불린다. 레드향은 한라봉과 귤을 교배한 것으로 일반 귤보다 2~3배 크고, 과육이 붉고 통통하다.</p>
    <p class="justify">껍질에 붉은 빛이 돌아 레드향이라 불린다. 레드향은 한라봉과 귤을 교배한 것으로 일반 귤보다 2~3배 크고, 과육이 붉고 통통하다.</p>
  </body>
</html>

차례대로 지정 없음(기본 : 왼쪽 정렬), 가운데 정렬, 양쪽 정렬


③ line-height : 줄 간격 조절

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8">
    <title>line-height</title>
    <style>
      p {
        width:600px;
        border:1px solid #222;
        padding:10px;
        margin:10px;
      }
      .small-line {
        line-height:0.7;
      }
      .big-line {
        line-height:2.5;
      }
    </style>
  </head>
  <body>    
    <p>껍질에 붉은 빛이 돌아 레드향(감평甘平)이라 불린다. 레드향은 한라봉과 귤을 교배한 것으로 일반 귤보다 2~3배 크고, 과육이 붉고 통통하다.</p>
    <p class="small-line">껍질에 붉은 빛이 돌아 레드향(감평甘平)이라 불린다. 레드향은 한라봉과 귤을 교배한 것으로 일반 귤보다 2~3배 크고, 과육이 붉고 통통하다.</p>
    <p class="big-line">껍질에 붉은 빛이 돌아 레드향(감평甘平)이라 불린다. 레드향은 한라봉과 귤을 교배한 것으로 일반 귤보다 2~3배 크고, 과육이 붉고 통통하다.</p>
  </body>
</html>

 

줄 간격은 텍스트를 세로 정렬할 때도 유용하다.

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>상품 소개 페이지</title>
  <style>
    h1 {
      font-size:60px;  /* 글자 크기 */
      font-family:Verdana, Geneva, Tahoma, sans-serif;  /* 글꼴 */
    }
    .heading {
      width:100%;  /* 영역 너비 */
      height:100px;  /* 높이 */
      background:#222;  /* 배경 색 */
      color:rgb(255,255,255);  /* 글자 색 */
      text-align: center; /* 가로 정렬 - 가운데 */
    }
  </style>
</head>
<body>
  <h1 class="heading">HTML</h1>
</body>
</html>

위 코드의 경우, 가로로는 가운데 정렬이 되어있으나, 세로로는 가운데 정렬이 되어있지 않다. (위아래간격이 다름)

 

이 경우, line-height 속성값을 추가하여 영역 높이인 height의 속성값과 똑같이 지정하면 세로로 가운데 정렬이 가능하다.

.heading {
      width:100%;  /* 영역 너비 */
      height:100px;  /* 높이 */
      background:#222;  /* 배경 색 */
      color:rgb(255,255,255);  /* 글자 색 */
      text-align: center; /* 가로 정렬 - 가운데 */
      line-height: 100px;   /* 세로 정렬 - 가운데. line-height 값과 height 값을 같게 */
    }


④ text-decoration : 텍스트의 줄을 표시하거나 없애는 역할

□ 텍스트에 밑줄을 긋거나 취소선을 표시

■ 텍스트에 a href를 통해 하이퍼링크를 적용했을 경우, text-decoration 속성을 사용하면 기본적으로 생기는 밑줄을 없앨 수 있다.

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8">
    <title>text-decoration</title>
  </head>
  <body>
    <h1>text-decoration 속성</h1>
    <p style="text-decoration:none">none</p>
    <p style="text-decoration:underline">underline</p>
    <p style="text-decoration:overline">overline</p>
    <p style="text-decoration:line-through">line through</p>
  </body>
</html>


⑤ text-shadow : 텍스트에 그림자 효과 추가

text-shadow : none | <가로 거리> <세로 거리> <번짐 정도> <색상>

□ 세로 거리, 가로 거리만 지정(둘은 필수 속성)하면 나머지 값은 기본값을 통해 사용 가능

<가로 거리> 텍스트부터 그림자까지의 가로 거리로, 필수 속성.
양수값은 오른쪽, 음수값은 글자의 왼쪽에 그림자를 생성
<세로 거리> 텍스트부터 그림자까지의 세로 거리로, 필수 속성.
양수값은 글자의 아래쪽, 음수값은 글자 위쪽에 그림자 생성
<번짐 정도> 그림자가 번지는 정도.
양수값 사용 시 그림자가 모든 방향으로 퍼져 크게 표시.
반대로 음수값은 모든 방향으로 축소되어 보이며 기본값은 0이다.
<색상> 그림자 색상 지정. 공백으로 구분해 여러 색상도 지정 가능.
기본값은 현재 글자 색.

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>text-shadow</title>
  <style>    
    h1 { 
      font-size:60px;
    } 
    .shadow1 {
      color:red;
      text-shadow:1px 1px black;
    }
    .shadow2 {
      text-shadow:5px 5px 3px #ffa500;
    }
    .shadow3 {
      color:#fff;
      text-shadow:7px -7px 20px #000;
    }
  </style>
</head>
<body>
  <h1 class="shadow1">HTML</h1> 
  <h1 class="shadow2">CSS</h1>
  <h1 class="shadow3">자바스크립트</h1>
</body>
</html>


⑥ text-transform : 텍스트의 대소 문자 변환

□ 영문자 표기 시, 텍스트의 대소 문자를 원하는대로 바꿈. 한글에는 영향 없고 영문자에만 적용된다.

capitalize 첫 번째 글자를 대문자로 변환
uppercase 모든 글자를 대문자로 변환
lowercase 모든 글자를 소문자로 변환
full-width 가능한 한 모든 문자를 전각 문자로 변환

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>text-transform</title>
  <style>    
    .trans1 {
      text-transform: capitalize;
    }
    .trans2 {
      text-transform: uppercase;
    }
    .trans3 {
      text-transform: lowercase;
    }
  </style>
</head>
<body>
  <p class="trans1">html</p> 
  <p class="trans2">css</p>
  <p class="trans3">javascript</p>
</body>
</html>


⑦ letter-spacing, word-spacing : 글자 간격(자간) 조절

□ letter-spacing : 글자와 글자 사이 간격 조절 -> 보통 CSS에서 사용하는 방

□ word-spacing : 단어와 단어 사이 간격 조절

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8">
    <title>텍스트 스타일</title>
    <style>  
      p {
        font-family:Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
        font-size:80px;
        text-shadow:3px 3px 1px #ccc;  /* 오른쪽 아래로 파란색 그림자 */
      }
      .spacing1 {
        letter-spacing:0.2em;  /* 글자 간격 0.2em */
      }
      .spacing2 {
        letter-spacing:0.5em;  /* 글자 간격 0.5em */
      }      
    </style>
  </head>
  <body>
    <p>CSS</p> 
    <p class="spacing1">CSS</p>
    <p class="spacing2">CSS</p>
  </body>
</html>


[ 3. 목록 스타일 ]

① list-style-type : 불릿 모양과 번호 스타일 지정

disc 채운 원 모양
circle 빈 원 모양
square 채운 사각형 모양
decimal 1부터 시작하는 10진수 1, 2, 3, ...
decimal-leading-zero 앞에 0이 붙는 10진수 01, 02, ..
lower-roman 로마 숫자 소문자 i, ii, iii, ...
upper-roman 로마 숫자 대문자 I, II, III, ...
lower-alpha 또는 lower-latin 알파벳 소문자 a, b, c, ...
upper-alpha 또는 upper-latin 알파벳 대문자 A, B, C, ..
none 불릿이나 숫자 제거  
<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>불릿과 번호 바꾸기</title>
  <style>
    .book1 {
      list-style-type:none;  /* 불릿 없앰 */
    }
    .book2 {
      list-style-type: upper-alpha;  /* 알파벳 대문자 */
    } 
  </style>
</head>
<body>
  <h1>도서 시리즈</h1>
  <ul class="book1">
    <li>Do it! 시리즈</li>
    <li>된다 시리즈</li>
    <li>DCM 프로 사진가</li>
  </ul>

  <ol class="book2">
    <li>Do it! 시리즈</li>
    <li>된다 시리즈</li>
    <li>DCM 프로 사진가</li>
  </ol>
</body>
</html>


② list-style-image : 불릿 대신 이미지 사용

□ 불릿 대신 원하는 이미지 사용. 들어갈 이미지는 불릿 크기만큼 작아야 좋음

list-style-image : <url(이미지 파일 경로)> | none

③ list-style-position : 목록 들여쓰기

list-style-position : inside | outside;
inside 불릿, 번호를 기본 위치보다 안으로 들여 쓴다.
outside 기본값

④ list-style : 목록 속성 한꺼번에 표시

ol {
	list-style : lower-alpha inside;
}

list-style-type과 list-style-position을 동시에 적용


[ 4. 표 스타일 ]

① caption-side : 표 제목의 위치를 정해줌

□ <caption>을 통해 표 제목을 정해줬었는데 표 위에 위치하는 표 제목을 표 아래쪽으로 옮길 수 있다.

top 표 윗 부분에 표시. 기본값
bottom 표 아랫 부분에 표시

② border : 표 테두리 속성

<!DOCTYPE html>
<html lang="ko">
	<head>
		<meta charset="UTF-8">
		<title>표 스타일</title>
    <style>
			table {
				caption-side: bottom;  /* 표 캡션 위치 */
				border:1px solid black;  /* 표 테두리는 검은 색 실선으로 */
			}
			td, th {
				border:1px dotted black;  /* 셀 테두리는 검은 색 점선으로 */
				padding:10px;  /* 셀 테두리와 내용 사이의 여백 */
				text-align:center;  /* 셀 내용 가운데 정렬 */
			}
		</style>
	</head>
	<body>		
		<h2>상품 구성</h2>
		<table>
			<caption>선물용과 가정용 상품 구성</caption>
			<thead>
				<tr>
					<th>용도</th>
					<th>중량</th>
					<th>갯수</t>
					<th>가격</th>
				</tr>
			</thead>
			<tbody>
				<tr>
					<td rowspan="2">선물용</td>
					<td>3kg</td>
					<td>11~16과</td>
					<td>35,000원</td>
				</tr>
				<tr>
					<td>5kg</td>
					<td>18~26과</td>
					<td>52,000원</td>
				</tr>
				<tr>
					<td rowspan="2">가정용</td>
					<td>3kg</td>
					<td>11~16과</td>
					<td>30,000원</td>
				</tr>   
				<tr>
					<td>5kg</td>
					<td>18~26과</td>
					<td>47,000원</td>
				</tr>
			</tbody>        
		</table>
	</body>
</html>


③ border-spacing : 셀 사이의 여백 지정

border-spacing : 수평거리 수직거리

공백으로 구별하여 나타내며, 두 값이 같다면 1개만 지정해도 ok


④ border-collapse : 표와 셀 테두리를 합쳐줌

collapse 표와 셀 테두리를 하나로 합쳐 표시
separate 표와 셀 테두리를 따로 표시. 기본값.
<!DOCTYPE html>
<html lang="ko">
	<head>
		<meta charset="UTF-8">
		<title>표 스타일</title>
    <style>
			table {
				caption-side: bottom;  /* 표 캡션 위치 */
				border:1px solid black;  /* 표 테두리는 검은 색 실선으로 */
				border-collapse: collapse;  /* 테두리 한줄로 표시 */
			}
			td, th {
				border:1px dotted black;  /* 셀 테두리는 검은 색 점선으로 */
				padding:10px;  /* 셀 테두리와 내용 사이의 여백 */
				text-align:center;  /* 셀 내용 가운데 정렬 */
			}
		</style>
	</head>
	<body>		
		<h2>상품 구성</h2>
		<table>
			<caption>선물용과 가정용 상품 구성</caption>
			<thead>
				<tr>
					<th>용도</th>
					<th>중량</th>
					<th>갯수</t>
					<th>가격</th>
				</tr>
			</thead>
			<tbody>
				<tr>
					<td rowspan="2">선물용</td>
					<td>3kg</td>
					<td>11~16과</td>
					<td>35,000원</td>
				</tr>
				<tr>
					<td>5kg</td>
					<td>18~26과</td>
					<td>52,000원</td>
				</tr>
				<tr>
					<td rowspan="2">가정용</td>
					<td>3kg</td>
					<td>11~16과</td>
					<td>30,000원</td>
				</tr>   
				<tr>
					<td>5kg</td>
					<td>18~26과</td>
					<td>47,000원</td>
				</tr>
			</tbody>        
		</table>
	</body>
</html>

 

'IT > Frontend' 카테고리의 다른 글

[쉽게 배우는 H.C.J] Chapter 2 - Section 01 자바, 톰캣, 이클립스 기반의 웹 개발 환경  (0) 2025.02.24
[쉽게 배우는 H.C.J] Chapter 1  (1) 2025.02.19
CSS 1  (0) 2025.02.02
HTML 4  (0) 2025.02.01
HTML 3  (0) 2025.01.30