연습장

7. 폰트와 텍스트 본문

CSS3

7. 폰트와 텍스트

js0616 2024. 6. 28. 05:27

https://poiemaweb.com/css3-font-text

 

 

 

 

1. font-size 프로퍼티

텍스트의 크기를 정의한다.

 

<style>
    .font-size-40 { font-size: 40px; }
    .font-size-2x { font-size: 2.0em; }
    .font-size-150ps { font-size: 150%; }
    .font-size-large { font-size: large; }
  </style>

 

주로 px , em , % 를 사용해봤으나 small large 등은 처음들어보는것같다. 

 


 

2. font-family 프로퍼티
폰트를 지정한다. 컴퓨터에 해당 폰트가 설치되어 있지 않으면 적용되지 않는다.

font-family
폰트는 여러 개를 동시에 지정이 가능하다. 

첫번째 지정한 폰트가 클라이언트 컴퓨터에 설치되어 있지 않은 경우, 다음에 지정된 폰트를 적용한다. 

따라서 마지막에 지정하는 폰트는 대부분의 OS에 기본적으로 설치되어 있는 

generic-family 폰트(Serif, Sans-serif, Mono space)를 지정

 

폰트명은 따옴표로 감싸주며 폰트명이 한단어인 경우는 따옴표로 감싸주지 않아도 된다.

 


 

https://noonnu.cc/

 

눈누

상업용 무료한글폰트 사이트

noonnu.cc

 

 

사용하고 싶은 폰트의 해당 부분을 복사해서 가져가면 무료로 폰트를 사용할 수 있다. 

 

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        @font-face {
            font-family: 'Cafe24Moyamoya-Regular-v1.0';
            src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/noonfonts_231029@1.1/Cafe24Moyamoya-Regular-v1.0.woff2') format('woff2');
            font-weight: normal;
            font-style: normal;
        }

        .my_font {
            font-family: 'Cafe24Moyamoya-Regular-v1.0' , sans-serif;
        }

    </style>
</head>
<body>
    <h1 class="">frontend 고수가 될꺼야</h1>
    <h1 class="my_font">frontend 고수가 될꺼야</h1>
    <p class="">frontend 고수가 될꺼야</p>
    <p class="my_font">frontend 고수가 될꺼야</p>
</body>
</html>

 


 

3. font-style / font-weight 프로퍼티
font-style 프로퍼티는 이탤릭체의 지정, font-weight 프로퍼티는 폰트 굵기 지정에 사용된다.

    <style>
        .my_italic {
            font-style: italic;
        }
        .my_bold {
            font-weight: bold;
        }

    </style>

 

 

 

4. font Shorthand
Shorthand Syntax

 

font : font-style(optional) font-variant(optional) font-weight(optional) font-size(mandatory) line-height(optional) font-family(mandatory)

 

/* style | variant | weight | size/line-height | family */
/* font-variant: small-caps; 소문자를 대문자로 만든다. 단 크기는 일반 대문자에 비해 더 작다.*/
font: italic small-caps bolder 16px/3 cursive;

 

 

5. line-height 프로퍼티
텍스트의 높이를 지정한다. 텍스트 수직 정렬에도 응용되어 사용된다.

다음은 수직 중앙 정렬 예제이다. a 요소의 line-height 값과 a 요소를 감싸는 div 요소의 height 값을 일치시킨다.

 

text-align : center // x 축 정렬

line-height : 부모의 height // y 축 정렬 , 1줄만 가능

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body{
            display: flex;

        }

        div {
            margin: 10px;
            width: 300px;
            height: 300px;
            background-color: lightgray;
        }

        .x{
            text-align: center;
        }
        .y{
            line-height: 300px;
        }
        .xy{
            text-align: center;
            line-height: 300px;
        }
    </style>
</head>
<body>
    <div> 즐거운 프론트엔드 !! </div>
    <div class="x"> 즐거운 프론트엔드 !! </div>
    <div class="y"> 즐거운 프론트엔드 !! </div>
    <div class="xy"> 즐거운 프론트엔드 !! </div>
</body>
</html>

 

 

 


 

6. letter-spacing 프로퍼티
글자 사이의 간격을 지정한다.

 

    <style>
        .loose {
            letter-spacing: 2px;
        }
        .tight {
            letter-spacing: -1px;
        }
    </style>

 

 

7. text-align 프로퍼티
텍스트의 수평 정렬을 정의한다.

 

inline 요소는 width 프로퍼티가 없으므로 중앙 개념이 존재하지 않는다.

a 요소에 display: block;을 지정한다면 중앙 정렬이 가능할 것이다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .center {
            font-size: 24px;
            text-align: center;
            background-color: lightgray;
            margin: 10px;
        }
        .block {
            display: block;
        }
        .inblock{
            display: inline-block;
            width: 400px;
        }
    </style>
</head>
<body>

    <div class="center"> div 태그 block </div>
    <div class="center"> div 태그 block </div>
    <div class="center"> div 태그 block </div>
    <a class="center">a 태그 기본 inline </a>
    <a class="center">a 태그 기본 inline </a>
    <a class="center">a 태그 기본 inline </a>
    <a class="center block">a 태그인데 block</a>
    <a class="center block">a 태그인데 block</a>
    <a class="center block">a 태그인데 block</a>
    <a class="center inblock">a 태그인데 inline-block</a>
    <a class="center inblock">a 태그인데 inline-block</a>
    <a class="center inblock">a 태그인데 inline-block</a>

</body>
</html>

 

 

width 값을 조절할 수 있다면 -> block , inline-block -> text-aline : center 가 가능

 


8. text-decoration 프로퍼티


text-decoration 프로퍼티를 사용하여 링크 underline을 제거할 수 있다. 

또는 텍스트에 underline, overline, line-through를 추가할 수도 있다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body{
            display: flex;
        }
        div {
            font-size: 24px;
            background-color: lightgray;
            margin: 10px;
            height: 100px;
            color: red;
        }

        .under {
            text-decoration: underline;
        }

        .over{
            text-decoration: overline;
        }

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

    </style>
</head>
<body>

    <div class="under"> underline </div>
    <div class="over"> overline </div>
    <div class="through"> line-through </div>

</body>
</html>

 


 

9. white-space 프로퍼티

 

white space는 공백(space), 들여쓰기(tab), 줄바꿈(line break)을 의미한다. 

html은 기본적으로 연속된 공백(space), 들여쓰기(tab)는 1번만 실행되며 줄바꿈(line break)은 무시된다. 

또한 텍스트는 부모의 가로 영역을 벗어나지 않고 자동 줄바꿈(wrap)된다. 

 

white-space 프로퍼티는 이러한 기본 동작을 제어하기 위한 프로퍼티이다.

 

 

코드에 다음과 같이 적게 되었을경우 

<h3>nowrap</h3>Lorem   ipsum

    dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

 

normal 이 일반적인 default 값이며

 

nowrap 의 경우 부모의 크기에 따른 자동 줄바꿈을 하지 않도록 하고

 

 

pre 의 경우 코드를 작성한 에디터 처럼 그대로 보여준다

 

 

그외 pre-wrap 과 pre-line 이 있다.


10. text-overflow 프로퍼티
부모 영역을 벗어난 wrapping(자동줄바꿈)이 되지 않은 텍스트의 처리 방법을 정의한다. 

이 프로퍼티를 사용하기 위해서는 아래의 조건이 필요하다.

1. width 프로퍼티가 지정되어 있어야 한다. 이를 위해 필요할 경우 block 레벨 요소로 변경하여야 한다.
2. 자동 줄바꿈을 방지하려면 white-space 프로퍼티를 nowrap으로 설정한다.
3. overflow 프로퍼티에 반드시 “visible” 이외의 값이 지정되어 있어야 한다.

 

/* 부모 영역을 벗어난 텍스트를 잘라내어 보이지 않게 하고 말줄임표(...)를 표시한다. */
.truncate {
  width: 150px;             /* width가 지정되어 있어야 한다. */
  white-space: nowrap;      /* 자동 줄바꿈을 방지 */
  overflow: hidden;         /* 반드시 "visible" 이외의 값이 지정되어 있어야 한다. */
  text-overflow: ellipsis;  /* ellipsis or clip */
}

.clip     { text-overflow: clip; }
.ellipsis { text-overflow: ellipsis; }


11. word-wrap 프로퍼티
한 단어의 길이가 길어서 부모 영역을 벗어난 텍스트의 처리 방법을 정의한다.

link 등을 표기할 때 그 길이가 매우 길어지는데 이 프로퍼티를 사용하지 않으면 부모 영역을 넘어가게 된다.

 

12. word-break 프로퍼티

한 단어의 길이가 길어서 부모 영역을 벗어난 텍스트의 처리 방법을 정의한다.
word-wrap 프로퍼티는 단어를 어느 정도는 고려하여 개행하지만(.,- 등을 고려한다)

word-break: break-all;는 단어를 고려하지 않고 부모 영역에 맞추어 강제 개행한다.

 

<style>
    .word-wrap  { word-wrap: break-word; }
    .word-break { word-break: break-all; }
    </style>

 

 

 

 

'CSS3' 카테고리의 다른 글

9. float 요소 정렬  (0) 2024.06.28
8. position 요소의 위치 정의  (0) 2024.06.28
6. 백그라운드  (1) 2024.06.28
5. display, visibility, opacity  (0) 2024.06.28
4. 박스모델  (0) 2024.06.27