웹프로그래밍/CSS 3

CSS - 폰트 설정

Uisin 2024. 7. 31. 17:59

폰트 설정

 

Font

font-weight

- 폰트의 두께를 지정해주는 속성이다

속성 값 의미
normal 기본 글자 두께
bold 볼드처리
bolder 부모 요소보다 더 두껍게
lighter 부모 요소보다 더 얇게
숫자 지원하는 서체에 따라 100~900 사이의 두께 설정

 

div{
font-weight: 600;
}

 

font-size

- px, %, em, rem, vw,vh 등의 단위로 폰트의 크기를 설정한다

- px은 픽셀단위, %는 부모 요소에 따라 상대적으로 변하는 단위

- em은 부모 요소를 기준으로 크기가 변하는 상대적인 단위로 만약 부모 요소 div에 16px을 했다면 1em은 16px이 된다

- rem은 루트요소 <html style="font-size: 18px;">에 따라 변화하는 단위로 기본 HTML의 폰트 크기는 16px이므로 2rem이면 32px이 된다

-vw, vh는 뷰포인트를 기준으로 삼아 상대적으로 변하는 단위

div{
font-size: 1.5em;
}

 

line-height

- 줄 높이를(행간)을 지정하는 속성으로 마찬가지로 px,em,cm 등의 단위로 지정이 가능하다

div{
line-height:32px;
}

 

font-family

- 글꼴(서체)를 지정할 수 있는 속성으로 시스템에 있는 서체 중 원하는 서체를 골라서 사용하면 된다

- 아래 예시 코드에서 정한 글꼴로 Arial, Helvetica가 있는데 Arial은 Windows의 기본 서체, Helvetica는 mac의 기본서체로

- mac환경에서는 body에 적용될 서체는 Helvetica가 된다. (둘 다 없다면 sans-serif 서체를 자동으로 사용한다)

- 기본 속성으로는 serif, sans-serif, monospace, cursive 등이 있다

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

 

color

- 폰트의 색상을 지정할 수 있는 속성이다

- Hex코드, RGB, RGBA, HSL 등 다양한 컬러코드를 지원한다

- 단순하게 색상 이름을 설정해도 된다

 

body {
  color : red;
}

text-align

- 문자의 정렬 방식을 지정하는 속성으로

- 왼쪽으로 정렬할지

- 오른쪽으로 정렬할지

- 중앙정렬을 할지

- 설정할 수 있도록 해준다. (justify로 할 시 양쪽 맞춤이 된다)

 

body {
  text-align : center;
}

 

text-indent

- 단순하게 들여쓰기나 내어쓰기를 표현할 때 사용한다

- 10px로 설정하면 10px만큼 들여쓰기를, -10px로 설정하면 10px만큼 내어쓰기를 표현한다

 

text-transform

- 대문자로 표현할지 소문자로 표현할지 또는 첫 글자만 대문자로 표현할 지를 정해줄 수 있는 속성이다

- uppercase는 대문자로만, lowercase는 소문자로만, 그리고 capitalize는 첫글자만 대문자로 바꿔준다

 

letter-spacing

- 문자 사이의 간격(자간)을 설정한다

- px로 설정하여 설정한 만큼 자간이 설정된다

 

word-spacing

- 단어 사이의 간격, 즉 띄어쓰기를 기준으로 그 간격을 설정하는 속성이다

- 10px로 설정 시 단어 사이마다 10px씩 멀어진다

 .text-indent-example {
      text-indent: 20px; /* 첫 번째 줄에 20px 만큼 들여쓰기 */
    }
    
    .letter-spacing-example {
      letter-spacing: 5px; /* 문자 간격을 5px로 설정 */
    }
    
    .word-spacing-example {
      word-spacing: 15px; /* 단어 간격을 15px로 설정 */
    }

 

word-break, word-wrap

- 글자가 넘칠 때 줄바꿈을 할지 안할지를 결정하는 속성이다

- word-wrap과 word-break의 가장 큰 차이점은 동아시아 언어를 지원하냐 마냐다

- word-wrap같은 경우 로마자나 키릴문자 등 서구권에서 사용되는 문자에 적용되며 아시아권에서 사용되는 문자에는 x

- 그렇기 때문에  한국어의 경우 word-break 속성을 사용해야 줄바꿈이 일어난다

- 두 속성 모두 값이 normal로 될 경우 요소를 벗어나 텍스트가 쭉 써진다

- word-wrap은 break-word를 값으로 줄바꿈을 시키고 word-break 같은 경우 break-all, keep-all이 있는데

- break-all 같은 경우에는 word-wrap의 break-word와 동일한 역할을 한다

- 결론적으로 한국어를 자동 줄바꿈 처리하려면 word-break 속성의 keep-all 값을 사용해야 한다

 

위가 word-wrap 아래가 word-break

 

 .wrap-word-example {
      width: 150px;
      word-wrap: break-word; /* 서구권 문자에서 중간에서 줄 바꿈 */
      border: 1px solid black;
      margin-bottom: 10px;
    }

    .break-word-example {
      width: 150px;
      word-break: break-all; /* 한국어에서 중간에서 줄 바꿈 */
      border: 1px solid black;
    }

 

 

white-space

- 텍스트의 공백 처리 방식을 제어하는 속성으로 텍스트 내의 공백이나 줄 바꿈이 어떻게 처리될지를 정의한다

- 속성의 값으로는 normal, nowrap, pre, pre-wrap, pre-line등이 있다

- 그 중 nowrap은 줄 바꿈을 하지않게 하고 공백이 있더라도 하나로 합쳐버리며 부모요소를 벗어나기도 한다

 

속성 설명
normal 기본값, 여러 공백은 하나로 합쳐지고 텍스트 내에서 자동으로 줄 바꿈이 일어남
nowrap 줄 바꿈을 하지 않고 한 줄로 계속 이어지게 함. 공백이 여러 개 있더라도 하나로 합쳐짐
pre 공백과 줄 바꿈을 그대로 표시. 즉, HTML 코드 내에서 작성한 대로 그대로 나타남
pre-wrap 공백은 그대로 유지하면서, 텍스트가 넘칠 경우 자동으로 줄 바꿈이 됨
pre-line 공백은 하나로 합쳐지지만, 텍스트가 넘칠 경우 줄 바꿈이 발생함

 

 

nowrap으로 설정하면 이런식으로 박스를 벗어나버린다

 

<style>
        .nowrap-example {
            width: 200px;
            white-space: nowrap;
            text-overflow: ellipsis;
            border: 1px solid #ccc;
            padding: 10px;
        }
</style>

 

<body>
    <h1>White-Space: nowrap Example</h1>
    <div class="nowrap-example">
        This is an example text that is too long to fit within the width of the container. It will not wrap to the next line.
    </div>
</body>

'웹프로그래밍 > CSS 3' 카테고리의 다른 글

CSS - Background와 Transition  (0) 2024.08.06
CSS - 레이아웃 속성과 flex  (0) 2024.08.05
CSS - 박스 모델  (0) 2024.07.30
CSS - 선택자  (0) 2024.07.29
CSS - 기본 사용법  (0) 2024.07.26