폰트, 텍스트

typography

타이포그래피의 구조

타이포그래피

모든폰트는 em박스를 가지고 있고 위 그림과 같은 구조로 이루어져 있다

  • em : 폰트의 전체 높이
  • ex ( = x-height ) : 해당 폰트의 영문 소문자 x의 높이
  • baseline : 소문자 x를 기준으로 하단의 라인
  • descender : baseline 아래로 쳐지는 영역 (g, j, p, q, y)
  • ascender : 소문자 x의 상단 라인 위로 넘어가는 영역 (b, d, h, l)

font-family

font-family: family-name | generic-family ( | initial | inherit );
font-family: Helvetica, Dotum, '돋움', Apple SD Gothic Neo, sans-serif; 
  • family-name : 지정순서로 폰트의 우선순위 결정(한글 지원 여부) ,로 구분하여 여러개 선언 할 수 있다.
  • generic-family : family-name으로 지정한 폰트가 사용자의 컴퓨터에 없을 시 적절한 폰트를 선택할 수 있도록 함
    • sans : 삐침이 없는 문자
    • serif : 삐침이 있는 문자

line-height

텍스트 라인의 높이를 의미하고 주로 행간을 제어할 때 사용

기본값 : normal

line-height: normal | number | length | initial | inherit ;

line-height

line-height로 제어되는 부분을 line-box라고도 하며 이는 타이포그래피 구조에서 배웠던 [em 박스] + [상하단의 여백]까지를 의미한다.

속성값

  • normal : 기본값으로 브라우저의 기본속성을 따른다. 보통 1.2 정도로 할당됨
  • number : font-size를 기준으로 설정한 숫자만큼 배율로 적용
  • length : px, em 등 고정 수치로 할당
  • % : font-size를 기준으로 설정한 퍼센트만큼 배율로 적용됨

number와 %차이

  • number : 부모의 숫자 값이 그대로 상속됨. 자식 요소에서도 또 한 번 자식 요소의 font-size를 기준으로 계산된 값을 가진다.
  • % : 부모 요소에서 %값이 그대로 상속되는 것이 아니고, %에 의해 이미 계산된 px값이 상속됨

font-size

글꼴의 크기를 지정하는 속성

기본값 : medium

속성값

  • keyword : medium, xx-small, x-small, small, large, x-large, xx-large, smaller, larger
  • length : px, em 등 고정 수치
  • % : 부모 요소의 font-size 기준의 퍼센트로 지정

font-weight

기본값 : normal

font-weight: normal | bold | bolder | lighter | number | initial | inherit ;

속성 값

  • normal : 기본 값 400
  • bold : 700
  • bolder : 부모 요소보다 두껍게
  • lighter : 부모 요소보다 얇게
  • number : 100, 200, .. , 900

실무에서는 부모 요소에 영향이 있는 bolder와 lighter는 지양
normal과 bold만 지원하는 폰트는 100-500 은 normal, 600-900 은 bold

font-style

기본값 : normal

font-style: normal | italic | oblique | initial | inherit;

속성값

  • normal : font-family 내에 분류된 기본 값
  • italic : italic 스타일로 표현
  • oblique : oblique 스타일로 표현
    • 텍스트 기울기에 대한 각도를 추가로 지정할 수 있다.
    • font-weight oblique <각도>;

font-variant

글꼴 변환 ( 소문자를 작은 대문자로 표현 )

기본값 : normal

font-variant: normal | small-caps | initial | inherit ;

속성값

  • normal : 기본 값
  • small-caps : 소문자를 작은 대문자로 변형

font

글꼴 속성의 축약형

지켜야할 룰이 많아서 잘 사용하지 않음

font: font-style font-variant font-weight font-size/line-height font-family | initial | inherit;

속성값

  • font-style : font-style 지정, 기본 값은 normal
  • font-variant : font-variant 지정, 기본 값은 normal
  • font-weight : font-weight 지정, 기본 값은 normal
  • font-size/line-height : font-size/line-height 지정, 기본 값은 normal
  • font-family : font-family 지정

유의사항

  • font-size와 font-family는 반드시 선언해야 하는 필수 속성
  • 빠진 속성이 있으면 기본 값으로 지정됨
  • 각 속성의 선언 순서를 지켜야 함

웹 폰트 (@FONT-FACE)

사용자의 로컬환경에 글꼴을 다운로드 받아 적용

시스템 폰트 : 시스템 상에서 제공되는 폰트 이미지 폰트 : 이미지 자체를 제공하는 폰트 웹 폰트 : 다운 글꼴을 서버에 저장하거나 웹 경로, 로컬환경에 다운 받아 제공하는 폰트

@font-face {
    font-properties
}

속성값

  • font-family (필수) : 글꼴의 이름을 지정
  • src (필수) : 다운로드 받을 글꼴의 경로(URL)
  • font-style (옵션) : 글꼴의 스타일 지정, 기본값 normal
  • font-weight (옵션) : 글꼴의 굵기 지정, 기본값 normal

vertical-align

vertical-align 속성

수직 정렬

기본값 : baseline

vertical-align: keyword | length | percent | initial | inherit;

속성값

  • length : 요소를 지정한 길이만큼 올리거나 내림, baseline 기준, 음수 허용
  • % : 요소를 line-height를 기준으로 올리거나 내림, line-height 기준, 음수 허용
  • keyword : baseline(기본 값), sub, super, top, text-top, middle, bottom, text-bottom
    • sub : 부모 아래 첨자 기준으로 정렬
    • super : 부모 위 첨자 기준으로 정렬
    • text-top : 부모 텍스트의 맨위(Ascender 제외)
    • text-bottom : 부모의 텍스트의 맨 아래(Descender 제외)
    • middle : 부모의 중앙에 위치
    • top : 부모의 맨 위 위치
    • bottom : 부모의 맨 아래 위치

text-aline

텍스트 정렬

기본값 : left

속성값

  • left : 왼쪽으로 정렬
  • right : 오른쪽으로 정렬
  • center : 가운데 정렬
  • justify : 양 끝 정렬

text-align과 display의 관계

  • text-align은 inline-level에 적용됨
  • block-level을 text-align으로 정렬할 수 없음

block 요소를 가운데 정렬하고자 한다면 margin auto를 사용
가운데 정렬 > 인라인 요소 : text-align (center) 블럭 요소 : margin (auto)

text-indent

텍스트 들여쓰기

속성값

  • length : px, em 등 고정 수치로 지정. 음수 허용
  • % : 부모 요소의 width를 기준으로 퍼센트로 지정

text-decoration

텍스트 장식

기본값 : none currentColor solid

text-decoration: text-decoration-line text-decoration-color text-decoration-style | initial | inherit;
  • text-decoration-line : 텍스트 꾸밈의 종류를 지정하는 속성
    • none : 텍스트 꾸밈을 생성하지 않음
    • underline : 밑줄
    • overline : 윗줄
    • line-through : 중간을 지나는 줄
  • text-decoration-color : 색상을 지정하는 속성
  • text-decoration-style : 선의 스타일을 지정하는 속성
    • solid : 한줄
    • double : 이중선
    • dotted : 점선
    • dashed : 파선
    • wavy : 물결

단어 관련 속성

white-space

요소 안에 공백을 어떻게 처리할지 지정하는 속성

  • normal : 공백과 개행을 무시하고, 필요한 경우에 자동 줄바꿈 발생 (기본값)
  • nowrap : 공백과 개행을 무시하고, 자동 줄바꿈이 일어나지 않음
  • pre : 공백과 개행을 표현하고, 자동 줄바꿈이 일어나지 않음
  • pre-line : 공백을 무시하고, 개행만 표현. 필요한 경우에 자동 줄바꿈 발생
  • pre-wrap : 개행은 무시하고, 공백만 표현. 필요한 경우에 자동 줄바꿈

letter-spacing

자간을 지정하는 속성

  • normal : 기본값
  • length : 길이만큼 자간을 지정. 음수 허용

word-spacing

단어사이의 간격을 지정하는 속성

  • normal : 기본값
  • length : 길이만큼 단어 사이의 간격을 지정. 음수 허용

word-break

단어가 라인 끝에 나올 경우 어떻게 처리할지 (중단점) 지정하는 속성

  • normal : 기본값. 중단점은 공백이나 하이픈(-)(CJK는 음절)
  • break-all : 중단점은 음절. 모든 글자가 요소를 벗어나지 않고 개행
  • keep-all : 중단점은 공백이나 하이픈(-)(CJK는 그 외 기호도 포함)

word-wrap

요소를 벗어난 단어의 줄바꿈을 지정하는 속성

  • normal : 기본값. 중단점에서 개행
  • break-word : 모든 글자가 요소를 벗어나지 않고 강제로 개행

태그:

카테고리:

업데이트: