CSS

CSS 텍스트 표현 방법

kyoulho 2024. 6. 16. 17:28

em과 rem 단위


CSS는 길이(length)를 표현할 때 픽셀 단위(px)를 사용한다. 하지만 픽셀 단위는 '몇 글자 정도의 길이'와 같은 텍스트의 표시 길이를 표현해야 할 때는 그리 적합하지 않다. 예로 '60픽셀'보다는 '문자 20개 정도의 길이'로 표현하는 것이 더 자연스럽다.

따라서 CSS는 영문자 'M'의 발음 '엠'을 의미하는 em과 'root M'을 의미하는 rem이라는 단위를 제공한다. 이 단위들은 화면 크기에 따라 반응형 디자인을 구현할 때 유용하다.

em 단위

em 단위는 현재 요소의 폰트 크기에 상대적인 크기를 나타낸다. 예를 들어, 부모 요소의 폰트 크기가 16px이라면, 자식 요소에서 1em은 16px을 의미한다.

  • 상대적인 단위: 요소의 폰트 크기를 기준으로 크기를 계산한다.
  • 중첩 효과: 요소가 중첩될 경우, em 단위는 부모 요소의 폰트 크기를 기준으로 계산되므로, 크기가 의도치 않게 커질 수 있다.

rem 단위

rem 단위는 최상위 요소(root element, 일반적으로 <html>)의 폰트 크기에 상대적인 크기를 나타낸다. 이는 em과 달리 중첩된 요소의 영향을 받지 않는다.

  • 고정된 기준: 최상위 요소의 폰트 크기를 기준으로 계산한다.
  • 일관된 크기: 중첩된 요소에서도 항상 최상위 요소의 폰트 크기를 기준으로 하므로 예측 가능한 크기를 유지할 수 있다.
특징 em rem
기준 부모 요소의 폰트 크기 최상위 요소의 폰트 크기
중첩 요소의 영향 부모 요소의 폰트 크기에 따라 크기가 변경됨 중첩 요소의 영향을 받지 않음
사용 시기와 이점 특정 요소의 상대적인 크기를 설정해야 할 때 유용
특정 요소 내에서만 크기를 조절하고 싶을 때 사용
전체 레이아웃의 일관된 크기를 유지하고 싶을 때 사용
반응형 디자인에서 전체적인 폰트 크기와 요소 크기를 쉽게 조절할 수 있음
사용 시 주의사항 중첩된 경우 크기가 의도치 않게 커질 수 있음 일관된 크기를 유지할 수 있음

 

 

글자 크기 설정


CSS는 텍스트의 글자 크기를 설정할 수 있도록 font-size와 line-height라는 속성을 제공한다. font-size는 글꼴의 크기, 즉 글자의 높이를 의미한다. line-height는 글자의 높이(즉, font-size)에 여분의 높이를 더한 값을 설정한다.

즉, 여러 줄의 텍스트는 줄마다 line-height만큼의 높이를 가지고, 각 줄의 텍스트는 line-height보다 조금 작은 font-size값을 가져 행간이 조금씩 떨어져 보이게 해 준다. 두 속성은 픽셀, 퍼센트, em, rem단위로 설정할 수 있다.

 

테일윈드 CSS 글자 크기 클래스

브라우저마다 텍스트 표시를 담당하는 h1~h6,  p 요소에 기본 설정값이 조금씩 다르다는 문제가 있다. 때문에 테일윈드 CSS는 h1~h6, p 요소에 기본으로 설정된 글자 크기를 모두 초기화하고 글자 크기를 설정하는 클래스를 제공하여 태그와 상관없이 글자 크기를 조절할 수 있게 해 준다. 

클래스 이름 font-size line-height
text-xs 0.75rem 1rem
text-sm 0.875rem 1.25rem
text-base 1rem 1.5rem
text-lg 1.125rem 1.75rem
text-xl 1.25rem 1.75rem
text-2xl 1.5rem 2rem
text-3xl 1.875rem 2.25rem
text-4xl 2.25rem 2.5rem
text-5xl 3rem 1
text-6xl 3.75rem 1
text-7xl 4.5rem 1
text-8xl 6rem 1
text-9xl 8rem 1

 

글자 굵기 설정


font-weight 속성은 글자의 굵기를 설정하는 속성이다.

테일윈드 CSS 글자 굵기 클래스

font-normal 클래스는 font-weight 속성값을 400으로 설정하며 보통은 이 값이 각 글자의 굵기이다.

보통 헤드라인 텍스트는 font-bold나 font-black으로 설정하여 텍스트가 강조되게 한다.

기울임 꼴  
   
   
   
   
   
   

 

설정


font-style 속성은 글자가 기울임 꼴로 보이도록 해준다.

테일윈드 CSS 기울임꼴 클래스

줄 바꿈  
   
   

 

문자 설정


줄 바꿈 문자 \n은 HTML에서는 화이트 스페이스로 간주되어 무시된다. 하지만 CSS에서는 white-space 스타일 속성값으로 웹 브라우저가 \n과 같은 화이트 스페이스를 어떻게 해석할지를 설정할 수 있다.

 

  • normal: 연속된 공백(스페이스, 탭 등)을 하나의 공백으로 합친다. 줄 바꿈 문자(\n)는 개행 처리된다.
  • nowrap: 텍스트가 줄 바꿈 없이 한 줄에 모두 표시된다. 필요한 경우 텍스트는 요소의 경계를 넘어가게 된다.
  • pre: 텍스트는 HTML 코드 그대로 표시되며, 연속된 공백과 줄 바꿈이 그대로 유지된다.
  • pre-line: 연속된 공백은 하나의 공백으로 합쳐지고, 줄 바꿈 문자(\n)는 개행 처리된다.
  • pre-wrap: 연속된 공백은 하나의 공백으로 합쳐지고, 줄 바꿈 문자(\n)는 개행 처리된다. 필요한 경우 텍스트는 요소의 경계를 넘어가게 된다.

 

테일윈드 CSS 줄 바꿈 클래스

\n이 줄바꿈으로 동작하려면 whitespace-pre-line을 사용하면 된다.

클래스 이름 의미
whitespace-normal white-space: normal;
whitespace-nowrap white-space: nowrap;
whitespace-pre white-space: pre;
whitespace-pre-line white-space: pre-line;
whitespace-pre-wrap white-space: pre-wrap;

 

텍스트 정렬


text-align 속성은 텍스트를 정렬하는 속성이다.

테일윈드 CSS 텍스트 정렬 클래스

클래스 이름 의미
text-left text-align: left;
text-center text-align: center;
text-right text-align: right;
text-justify text-align: justify;

 

테일윈드 커스터마이징


Tailwind CSS는 설정 파일(tailwind.config.js)을 통해 커스터마이징 할 수 있다. 새로운 클래스를 추가하거나 기존 클래스를 수정할 수 있다.

module.exports = {
  theme: {
    extend: {
      fontSize: {
        // 글자 크기 설정
        'tiny': '0.625rem', // 10px
        'huge': '4rem',     // 64px
      },
      fontWeight: {
        // 글자 굵기 설정
        'extra-light': 200,
        'medium': 500,
        'extra-bold': 800,
      },
      fontStyle: {
        // 기울임꼴 설정
        'italic': 'italic',
        'normal': 'normal',
      },
      wordBreak: {
        // 줄바꿈 문자 설정
        'break-all': 'break-all',
        'break-word': 'break-word',
      },
      textAlign: {
        // 텍스트 정렬 설정
        'justify': 'justify',
        'center': 'center',
      },
    }
  },
  variants: {},
  plugins: [],
}

'CSS' 카테고리의 다른 글

CSS flex 레이아웃 이해하기  (0) 2024.06.29
CSS 캐스케이딩  (0) 2024.06.24
CSS 상자 모델 이해하기  (0) 2024.06.19
CSS 색상 표현 방법  (0) 2024.06.16
Tailwind CSS  (2) 2024.06.15