Skip to content
This page has been auto-translated and may contain errors.View in English

타이포그래피

docs.scrimba.com

웹에서 사람들이 읽는 대부분의 것은 텍스트이며, 페이지가 주는 느낌의 대부분은 그 텍스트가 어떻게 설정되어 있는지에서 나옵니다. 서체를 바꾸고, 줄 간격을 조정하고, 줄 길이를 제한하면, 같은 단락이 답답하고 불쾌한 것에서 차분하고 읽기 좋은 것으로 변합니다. 이것은 장식이 아닙니다. 이것은 타이포그래피이며, 당신의 말이 얼마나 편하게 읽히는지를 결정하는 몇 가지 CSS 속성이고, 이 장은 매일 사용하는 속성들의 투어입니다.

서체 선택하기

서체를 선택하는 속성은 font-family이며, 여기에 하나의 서체가 아니라 목록을 제공합니다. 이 목록은 **폰트 스택**입니다: 브라우저는 첫 번째 서체를 시도하고, 사용할 수 없으면 다음 서체로 대체되며, 계속 아래로 진행됩니다.

css
body {
  font-family: "Helvetica Neue", Arial, sans-serif;  /* Helvetica를 시도하고, 없으면 Arial, 그 다음 sans-serif */
}

마지막 이름은 항상 sans-serif 또는 serif와 같은 일반 패밀리여야 합니다. 이것이 당신의 안전망입니다: 명명된 서체가 읽는 사람의 기기에 없으면, 브라우저는 여전히 합리적인 것을 표시하는 대신 당신이 선택하지 않은 기본값을 표시합니다. 공백이 있는 글꼴 이름은 따옴표로 묶으십시오. 한 단어 이름은 따옴표가 필요하지 않습니다.

font-family는 쉼표로 구분된 **폰트 스택**을 가지며, 브라우저는 실제로 렌더링할 수 있는 목록의 첫 번째 서체를 사용합니다. 각 이름은 앞의 이름에 대한 대체이며, 목록은 일반 패밀리(sans-serif, serif, monospace)로 끝나야 하므로 항상 최종 답이 있습니다.

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

명명하는 서체에 대해 두 가지 광범위한 옵션이 있습니다. 시스템 폰트 스택은 각 운영 체제의 기본 인터페이스 서체를 나열하므로 페이지는 읽는 사람의 기기가 이미 사용하는 것을 빌립니다. 다운로드하는 데 비용이 들지 않으며 네이티브처럼 느껴지므로 많은 앱에서 사용합니다:

css
body {
  font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

다른 옵션은 웹 글꼴입니다: Google Fonts와 같은 호스트에서 링크하거나 @font-face로 자체 호스팅하는 글꼴 파일입니다. 이렇게 하면 모든 읽는 사람이 같은 서체를 보지만 읽는 사람이 기다리는 다운로드 비용이 듭니다.

font-family는 **폰트 스택**을 왼쪽에서 오른쪽으로 해석하여 브라우저가 렌더링할 수 있는 첫 번째 패밀리를 선택합니다. 이것이 목록이 일반 패밀리(sans-serif, serif, monospace)로 끝나는 이유입니다. 당신이 선택하는 이름 뒤에는 두 가지 전략이 있으며, 그들은 다르게 거래합니다.

시스템 폰트 스택은 각 플랫폼의 네이티브 UI 서체를 지정하므로 페이지는 운영 체제가 이미 제공하는 서체를 상속합니다. 아무것도 다운로드되지 않으므로 로드 지연이나 레이아웃 이동이 없으며 텍스트는 모든 기기에서 네이티브처럼 보입니다. 비용은 페이지가 플랫폼 간에 약간 다르게 보인다는 것인데, 이는 앱과 같은 인터페이스에는 괜찮지만 일관된 얼굴이 필요한 브랜드에는 잘못된 것입니다.

css
body {
  /* 현대적인 시스템 스택: San Francisco, Segoe UI, Roboto, 그 다음 대체 */
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

웹 글꼴은 브라우저가 다운로드하여 모든 읽는 사람이 같은 서체를 보도록 하는 글꼴 파일입니다. 호스트에서 링크하거나 패밀리 이름을 파일에 매핑하는 @font-face 규칙으로 자체 호스팅합니다. 자체 호스팅은 글꼴을 자신의 출처에 유지하므로 타사 요청을 방지하고 글꼴이 로드되는 동안 텍스트를 표시할지 여부를 지배하는 font-display 동작에 대한 캐싱 제어를 제공합니다.

css
@font-face {
  font-family: "Satoshi";
  src: url("/fonts/satoshi.woff2") format("woff2");
  font-weight: 400 700;         /* 가중치 범위를 포함하는 하나의 변수 파일 */
  font-display: swap;           /* 폴백 텍스트를 즉시 표시, 로드 시 교체 */
}

body {
  font-family: "Satoshi", system-ui, sans-serif;  /* 명명된 웹 글꼴, 그 다음 네이티브 대체 */
}

웹 글꼴에서도 폴백이 여전히 중요한 이유는 다운로드가 느리거나 실패할 수 있고, font-display: swap은 그 사이에 폴백 패밀리를 렌더링하기 때문입니다. 웹 글꼴과 유사한 메트릭을 가진 폴백을 선택하면 교체가 레이아웃을 흔들지 않게 합니다.

Juno서체 선택하기font-family는 하나의 서체가 아니라 목록을 가지며, 브라우저는 찾을 수 있는 첫 번째 것을 사용합니다. 항상 sans-serif와 같은 일반 패밀리로 목록을 끝내어 안전한 폴백이 있도록 합니다. 공백이 있는 글꼴 이름은 따옴표로 묶으십시오.
Juno서체 선택하기 폰트 스택은 일반 패밀리로 끝나는 대체 목록이며, 브라우저는 렌더링할 수 있는 첫 번째 서체를 사용합니다. 시스템 폰트 스택은 다운로드 없이 기기의 네이티브 서체를 무료로 빌리고, 웹 글꼴은 모든 사람이 같은 얼굴을 보도록 파일을 로드합니다. 앱과 같은 작업에는 시스템 스택을 선택하고 모양이 일관되어야 할 때는 웹 글꼴을 선택합니다.
Juno서체 선택하기 스택은 왼쪽에서 오른쪽으로 해석되며 일반 패밀리로 끝나야 하므로 읽는 사람은 항상 텍스트를 봅니다. 시스템 스택은 비용이 들지 않고 레이아웃을 절대 이동하지 않지만 플랫폼마다 다릅니다. 웹 글꼴은 font-display: swap과 잘 맞는 폴백으로 보호해야 하는 다운로드 비용이 드는 일관된 얼굴입니다. 캐싱과 타사 요청을 제어하려면 @font-face로 자체 호스팅합니다.

텍스트 크기 조정하기

font-size로 텍스트 크기를 설정합니다. 픽셀 단위로 값을 지정할 수 있지만, 도달해야 할 크기는 **rem**이며, 이는 페이지의 기본 글꼴 크기에 연결된 단위입니다. 하나의 rem은 브라우저의 기본 텍스트 크기와 같으며, 일반적으로 16px이므로 1rem은 정상적인 읽기 크기이고 1.25rem은 약간 더 큽니다.

css
body {
  font-size: 1rem;             /* 기본 읽기 크기, 일반적으로 16px */
}
h1 {
  font-size: 2rem;             /* 기본 크기의 2배 */
}

font-size는 텍스트의 크기를 설정하며, 본문 복사의 경우 px 대신 **rem**으로 크기를 조정해야 합니다. 하나의 rem은 루트 요소의 글꼴 크기이며, 기본값은 16px이고 읽는 사람이 브라우저 설정에서 변경할 수 있는 값입니다. rem에서 크기를 조정하면 텍스트는 해당 선호도에 따라 확대/축소되고, px에서 크기를 조정하면 잠깁니다.

css
:root {
  font-size: 100%;             /* 읽는 사람의 기본값을 존중하며, 보통 16px */
}
p {
  font-size: 1rem;             /* 읽는 사람이 기본값을 변경하면 확대/축소 */
}

rem에서 본문 텍스트의 크기를 조정하되 px에서는 조정하지 않아서 읽는 사람의 선택한 크기를 존중합니다. 크기 조정 단위 장에서는 rem, em, 백분율 및 뷰포트 단위가 어떻게 해석되는지 설명합니다. 타이포그래피의 짧은 버전은 rem이 예측 가능한 수학으로 확장 가능하고 접근 가능한 텍스트를 제공한다는 것입니다.

font-size는 많은 단위를 허용하지만, 본문 텍스트의 경우 선택은 접근성으로 내려옵니다. rem(루트 em)은 루트 요소(<html>)의 font-size와 상대적이며, 그 기본값은 읽는 사람이 브라우저에서 설정한 것으로, 보통 16px이지만 자유롭게 변경할 수 있습니다. 픽셀 값은 그 선호도를 무시합니다. 편의상 또는 시각 장애로 기본 텍스트 크기를 높인 읽는 사람은 rem로 크기 조정된 텍스트가 확대되고 px로 크기 조정된 텍스트는 그대로 있으므로, px 본문 복사는 읽는 사람이 의도적으로 선택한 접근성 설정을 조용히 무시합니다.

css
:root {
  /* 루트를 읽는 사람의 기본값으로 두고, px에서 16px로 하드 설정하지 않습니다 */
  font-size: 100%;
}

p {
  font-size: 1rem;             /* 1rem = 읽는 사람의 루트 크기, 함께 확대/축소 */
}

.lead {
  font-size: 1.125rem;         /* 16px 루트에서 18px, 여전히 확대/축소 */
}

em보다 rem을 선호하십시오. font-size의 경우 em부모의 글꼴 크기와 상대적이므로 ems는 중첩될 때 복합됩니다: em 크기의 요소가 다른 em 크기의 요소 내부에 있으면 곱해지고, 3단계 깊이로 중첩된 목록은 예기치 않게 축소되거나 커질 수 있습니다. rem은 항상 단일 루트 값을 참조하므로 요소가 얼마나 깊이 있든지 예측 가능하게 유지됩니다. 이는 모든 것을 포함하여 px를 확대/축소하는 페이지 줌과는 별개입니다. rem이 보호하는 경우는 읽는 사람이 기본 글꼴 크기 구체적으로 높이는 경우이며, 많은 사람들이 이를 수행하고 px 텍스트는 이를 무시합니다.

Juno텍스트 크기 조정하기font-size는 텍스트의 크기를 설정하며, rem은 도달해야 할 단위입니다. 하나의 rem은 브라우저의 정상 텍스트 크기이므로 1rem은 정상이고 2rem은 2배 더 큽니다. 다음 단계에서 파고드는 본문 텍스트를 px에서 크기 조정하는 것을 피하십시오.
Juno텍스트 크기 조정하기 본문 텍스트를 rem에서 크기 조정하되 px에서는 조정하지 않습니다. 하나의 rem은 읽는 사람의 루트 글꼴 크기이므로 rem의 텍스트는 기본값을 변경할 때 확대/축소되고 px의 텍스트는 고정됩니다. 크기 조정 단위 장에서 수학을 다루지만, 타입의 경우 규칙은 짧습니다: 사람이 읽는 모든 것에 rem을 사용합니다.
Juno텍스트 크기 조정하기rem은 읽는 사람이 제어하는 루트 글꼴 크기를 추적하므로 px 본문 텍스트는 의도적으로 만든 접근성 선택을 조용히 무시합니다. em보다 rem을 도달하십시오. em은 부모와 상대적이고 요소가 중첩될 때 복합되기 때문입니다. 이는 페이지 줌과는 별개인 읽는 사람의 기본 텍스트 크기에 대한 것입니다.

굵기와 스타일

두 가지 속성은 문자의 모양을 변경합니다. font-weight는 텍스트가 얼마나 굵은지를 제어하고, font-style은 **이탤릭**을 켭니다.

css
strong {
  font-weight: bold;           /* 더 무거운, 더 두꺼운 획 */
}
em {
  font-style: italic;          /* 기울어짐 */
}

boldnormal은 일상적인 굵기 키워드입니다. 이탤릭의 경우 italic은 텍스트를 기울이고 normal은 직립 상태를 유지합니다.

font-weight는 텍스트가 얼마나 무거운지 설정하며, normalbold가 친숙한 키워드이지만, 속성은 정말로 100에서 900까지 100씩 증가하는 **숫자 굵기**를 가집니다. 400normal이 매핑되는 것이고 700bold가 매핑되는 것입니다. 숫자가 중요한 이유는 많은 글꼴이 키워드에 도달할 수 없는 추가 굵기로 제공되기 때문입니다.

css
h1 {
  font-weight: 700;            /* bold와 동일 */
}
.caption {
  font-weight: 300;            /* 가벼운 굵기, 키워드는 없음 */
}

font-style: italic은 글꼴의 실제 이탤릭 디자인을 제공합니다. 여기서 하나가 존재하고, 기계적인 기울임보다는 별도로 그려진 기울어진 면입니다. 실제 강조 또는 책 제목과 같은 관례를 위해 예약하고, 큰 블록을 스타일링하지 않습니다. 이탤릭은 읽기를 더 어렵게 만들기 때문입니다.

font-weight100에서 900까지의 **숫자 굵기**를 가집니다. normal400의 별칭이고 bold700의 별칭입니다. 숫자는 글꼴이 실제로 그 굵기를 포함하는 경우에만 뚜렷한 굵기로 해석됩니다. 400700만 제공하는 글꼴에서 600을 요청하면 브라우저는 실제 굵기로 반올림하거나 획을 두껍게 하여 가짜 굵기를 합성하므로 설계된 굵기보다 나쁘게 보입니다. 따라서 사용 가능한 굵기는 로드한 것에 따라 달라집니다: 두 가지 굵기로만 링크된 웹 글꼴은 작성한 숫자가 무엇이든 두 가지를 제공합니다.

css
h1 {
  font-weight: 800;            /* 글꼴이 800 면을 제공하는 경우에만 뚜렷함 */
}
p {
  font-weight: 400;
}

font-style: italic은 글꼴의 그려진 이탤릭 면을 선택하는데, 이는 기계적인 기울임보다는 다른 문자 형태를 가진 별도 디자인입니다. 이탤릭 면이 없는 경우 브라우저는 직립을 전단하여 가짜 이탤릭을 만드는데, 이를 합성 이탤릭이라고 하며 더 저렴해 보입니다. 또한 oblique가 있으며, 이는 직립 디자인의 진정한 기울기이지만, italic은 글꼴에 올바르게 그려진 면이 있을 때 그것을 선택하기 때문에 산문에서 원하는 것입니다.

Juno굵기와 스타일font-weight는 텍스트를 더 굵거나 더 가볍게 만들고, font-style: italic은 기울입니다. 키워드 boldnormal은 매일 필요한 대부분을 다룹니다. 강조를 위해 이탤릭을 사용하되, 읽기가 어려워지는 전체 단락은 사용하지 않습니다.
Juno굵기와 스타일font-weight는 정말로 100에서 900까지 실행되며, 400은 정상이고 700은 굵음이며, 숫자는 키워드가 이름을 지을 수 없는 굵기를 해제합니다. 글꼴이 실제로 제공하는 굵기만 표시되며, 나머지는 가짜이거나 반올림됩니다. italic을 강조와 제목에 사용하되 긴 텍스트 스트레치는 사용하지 않습니다.
Juno굵기와 스타일 숫자 굵기는 100에서 900까지 실행되지만, 숫자는 글꼴에 그 면이 포함된 경우에만 착지합니다. 그렇지 않으면 브라우저가 반올림하거나 더 나쁜 모양의 가짜 굵기를 합성합니다. 따라서 두 가지 굵기로 로드된 웹 글꼴은 입력한 것이 무엇이든 두 가지를 제공합니다. italic은 존재할 때 그려진 이탤릭 면을 선택하고 존재하지 않을 때 합성 기울기로 대체됩니다.

텍스트를 읽기 쉽게 만드는 간격

편안한 텍스트는 대부분 공간에 관한 것입니다. line-height는 줄 사이의 간격을 제어하며, 약간의 여유 공간을 제공하면 단락을 훨씬 더 읽기 쉽게 만듭니다.

css
p {
  line-height: 1.5;            /* 글꼴 크기의 1.5배 */
}

단위가 없는 1.5와 같은 일반 숫자를 사용합니다. 이는 "글꼴 크기의 1.5배"를 의미하므로 간격이 텍스트와 함께 증가합니다. 답답한 줄은 페이지가 읽기 어렵게 느껴지는 가장 흔한 이유 중 하나이며, 이 하나의 값이 대부분을 해결합니다.

세 가지 속성이 읽기 쉬운 텍스트의 대부분의 작업을 수행합니다. line-height는 줄 사이의 수직 공간을 설정하며, 1.5와 같은 **단위 없는 값**을 제공해야 합니다. 이는 요소의 글꼴 크기의 1.5배를 의미합니다. letter-spacing은 문자 사이의 간격을 조정하며 대문자 제목에 소량으로 유용합니다. 그리고 줄의 길이는 둘 중 하나만큼 중요합니다: 매우 긴 줄은 읽기 지루하므로 max-width로 줄을 제한합니다.

css
p {
  line-height: 1.5;            /* 단위 없음: 글꼴 크기에 따라 확대/축소 */
  max-width: 65ch;             /* 측정을 약 65자로 제한 */
}
.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.05em;      /* 작은 추적으로 대문자가 혼잡하지 않음 */
}

ch 단위는 "0" 문자의 너비이므로 65ch는 대략 65자 너비입니다. 편안한 측정, 줄당 문자 수는 약 45~75자 사이에 있으며, 제한하는 것이 할 수 있는 가장 높은 영향의 타이포그래피 이동 중 하나입니다.

가독성은 세 가지 제어로 내려옵니다: 줄 높이, 문자 간격 및 줄 길이입니다. line-height는 **단위 없어야**합니다 (24px가 아님 1.5). 이유는 상속입니다. 단위 없는 줄 높이는 계수로 상속되므로 각 하강자는 자신의 글꼴 크기로 곱하고 모든 요소는 비례하는 간격을 가집니다. 단위가 있는 줄 높이는 계산된 길이로 상속되므로 글꼴 크기가 더 큰 자식은 부모의 고정 줄 상자를 상속하고 그 줄이 겹칩니다.

css
body {
  line-height: 1.5;            /* 계수로 상속: 모든 요소가 확대/축소 */
}

h1 {
  font-size: 2.5rem;
  /* 1.5를 상속하고 1.5 x 2.5rem으로 계산; 고정된 24px 줄 높이는 여기에서 클립할 것입니다 */
}

.article {
  max-width: 65ch;             /* 약 65자의 측정 */
  text-wrap: balance;          /* 선택적: 제목의 고르지 않은 줄 균형 */
}

letter-spacing(추적)은 본문 텍스트의 글꼴 기본값으로 가장 잘 남겨집니다. 여기서 설계자는 이미 조정했습니다. 작은 양수 값은 그렇지 않으면 혼잡할 모든 대문자 및 소문자 실행을 돕고, 작은 음수 값은 큰 디스플레이 제목을 조일 수 있습니다. 줄 길이는 측정이며, 줄당 문자 수이며, 편안한 대역은 대략 45~75자입니다. max-width에서 ch(글꼴의 "0" 글리프의 전진 너비)로 설정하면 대문자 제목이 추적되고 읽기 편안함에 미치는 영향이 거의 모든 글꼴 선택을 능가합니다.

Juno텍스트를 읽기 쉽게 만드는 간격line-height는 줄 사이의 공간을 설정하며, 1.5 정도의 값은 텍스트를 훨씬 더 읽기 쉽게 만듭니다. 단위가 없는 일반 숫자로 작성하여 간격이 텍스트와 함께 증가하도록 합니다. 답답한 줄은 페이지가 읽기 어렵게 느껴지는 주요 이유 중 하나이며, 이는 대부분을 해결합니다.
Juno텍스트를 읽기 쉽게 만드는 간격line-height1.5와 같은 단위 없는 값을 제공하여 각 요소의 글꼴 크기에 따라 확대/축소되도록 합니다. 줄 길이를 max-width에서 ch로 약 45~75자로 제한하는 것은 읽기 편안함 측면에서 할 수 있는 가장 영향이 큰 이동 중 하나입니다. letter-spacing을 절약하여 사용합니다. 주로 대문자 제목을 열기 위해입니다.
Juno텍스트를 읽기 쉽게 만드는 간격line-height를 단위 없게 유지하여 계수로 상속되고 요소별로 확대/축소되도록 합니다. 단위는 계산된 길이를 상속하고 큰 제목이 겹치게 만듭니다. 본문 텍스트에서 letter-spacing을 혼자 두고 대문자나 큰 디스플레이 유형에만 살짝 밉니다. 측정을 max-width에서 ch로 약 45~75자로 제한하면 거의 모든 글꼴 결정을 능가합니다.

정렬 및 장식

세 가지 속성은 정렬 및 마무리 터치를 처리합니다. text-align은 텍스트를 왼쪽, 오른쪽 또는 중앙으로 이동합니다. text-transform은 모든 대문자 만들기와 같은 경우를 변경합니다. 그리고 text-decoration은 밑줄과 같은 줄을 추가하거나 제거합니다.

css
h1 {
  text-align: center;          /* 제목 가운데 정렬 */
}
.button {
  text-transform: uppercase;   /* 모든 대문자로 표시 */
  text-decoration: none;       /* 링크 밑줄 제거 */
}

text-transform: uppercase는 다시 입력하지 않고도 텍스트를 대문자로 표시하므로 원본 내용은 정상적인 단어로 유지됩니다. 밑줄은 text-decoration으로 추가하거나 제거됩니다.

text-align은 상자 내에서 인라인 텍스트를 배치합니다 (left, right, center, justify). text-transform은 기본 텍스트를 변경하지 않고 디스플레이의 경우를 변경하므로 (uppercase, lowercase, capitalize) 화면 판독기는 여전히 실제 단어를 읽고 HTML은 깨끗하게 유지됩니다. text-decoration은 밑줄, 윗줄 및 취소선을 제어합니다.

css
.card-title {
  text-align: center;
}
.nav-link {
  text-decoration: none;              /* 기본 밑줄 제거 */
}
.price--old {
  text-decoration: line-through;      /* 취소선 표시된 이전 가격 */
}

지킬 가치가 있는 두 가지 습관입니다. 웹 본문 텍스트의 경우 text-align: justify를 피하십시오. 미세한 하이픈 제어 없이 단어 사이에 못생긴 공백 강을 열기 때문입니다. 그리고 링크에서 밑줄을 제거할 때 색상과 같은 다른 큐가 여전히 링크로 표시되는지 확인하십시오. 아니면 클릭할 수 있다는 것을 숨겼습니다. 색상 및 배경 장에서는 링크에 뚜렷하고 접근 가능한 색상을 제공하는 것을 다룹니다.

text-align은 포함하는 상자 내에서 인라인 컨텐츠의 정렬을 설정합니다. 웹 본문 텍스트를 위해 justify를 건너뜁니다: 브라우저는 단어 간격을 늘려서 정렬하고, 인쇄 식자가 가진 하이픈 및 줄 바꿈 제어 없이 공백의 강을 열고 가독성을 해치는 것이 깔끔한 가장자리를 돕는 것보다 더 많습니다.

text-transform (uppercase, lowercase, capitalize)은 원본 텍스트가 아니라 렌더링된 경우만 변경하므로 접근성 트리와 마크업은 실제 경우를 유지합니다. 이것이 모든 대문자를 하는 올바른 방법입니다: HTML에 대문자를 입력하는 대신 CSS에서 변환하므로 보조 기술은 단어를 문자별로 읽지 않고 콘텐츠는 정상적인 산문으로 편집 가능하게 유지됩니다. 소문자 간격을 작은 양수 letter-spacing과 쌍으로 묶으십시오. 소문자는 본문의 기본 추적으로 읽기가 타이트하기 때문입니다.

text-decoration은 선, 스타일, 색상 및 두께에 대한 약칭입니다 (text-decoration: underline wavy crimson 2px). text-decoration-colortext-underline-offset과 같은 롱핸드를 더 세밀하게 제어합니다. 일반적인 경우는 링크에서 text-decoration: none이고, 여기에는 밑줄을 제거하면 텍스트가 링크라는 주요 신호를 제거하므로 다른 눈에 띄는 affordance를 유지하는 규칙이 함께 제공됩니다.

css
.headline {
  text-transform: uppercase;
  letter-spacing: 0.04em;             /* 대문자는 숨을 쉼이 필요합니다 */
}

a {
  text-decoration-color: currentColor;
  text-underline-offset: 0.15em;      /* 밑줄을 기준선에서 밀어냄 */
}

text-align, text-transformline-height는 상속되므로 컨테이너에 설정하면 내부 텍스트로 흐릅니다. 선택자 장에서는 해당 설정을 위한 올바른 컨테이너를 대상으로 하는 것을 다룹니다.

Juno정렬 및 장식text-align은 텍스트를 왼쪽, 오른쪽 또는 중앙으로 이동하고, text-transform: uppercase는 대문자로 표시하며, text-decoration은 밑줄과 같은 줄을 추가하거나 제거합니다. CSS에서 대문자를 만드는 것이 실제 텍스트를 정상적인 단어로 유지하므로 다시 입력하지 않습니다. 링크의 밑줄을 떨어뜨리려면 text-decoration: none에 도달합니다.
Juno정렬 및 장식text-align은 인라인 텍스트를 배치하고, text-transform은 디스플레이에 대한 경우를 변경하며, text-decoration은 밑줄과 취소선을 처리합니다. 웹에서 justify를 건너뜁니다. 단어 사이에 못생긴 간격이 열리기 때문입니다. 링크의 밑줄을 제거하면 사람들이 여전히 클릭 가능하다고 생각하도록 색상과 같은 다른 큐를 유지합니다.
Juno정렬 및 장식 웹 본문 텍스트를 위해 justify를 피하십시오. 브라우저가 단어 간격을 늘려서 공백의 강을 열기 때문입니다. CSS와 text-transform으로 모든 대문자를 하되 대문자 입력은 하지 않으므로 보조 기술은 실제 단어를 읽고 원본은 깨끗하게 유지됩니다. 그리고 작은 letter-spacing을 대문자에 추가합니다. 링크에서 text-decoration: none을 설정하면 사람들이 여전히 클릭 가능하다고 볼 수 있도록 다른 affordance를 유지합니다.

글꼴 약칭 및 상속

글꼴 속성에는 편리한 특성이 있습니다: 아래로 흐릅니다. font-family<body>에서 설정하면 내부의 모든 단락, 제목 및 링크가 이를 상속하므로 거의 자신을 반복하지 않습니다.

css
body {
  font-family: system-ui, sans-serif;  /* 이것을 상속하는 내부의 모든 것 */
  line-height: 1.5;
}

이 때문에 대부분의 타이포그래피는 스타일시트의 맨 위 근처에 한 곳에 있으며, 개별 요소는 다른 내용만 재정의합니다.

글꼴 속성은 **상속**됩니다: font-family, font-size, font-weight, font-style, line-height 및 색상은 재정의되지 않는 한 요소에서 하강자로 전달됩니다. 이것이 바탕 유형을 body에서 한 번 설정하고 아래로 흐르도록 하는 이유입니다. CSS 작동 방식 장에서 더 깊이 다룹니다.

또한 여러 속성을 하나의 선언에 패킹하는 font 약칭이 있지만 사용하기 전에 알아야 할 가치가 있는 함정이 있습니다.

css
body {
  font: 1rem/1.5 system-ui, sans-serif;   /* 크기/줄-높이 패밀리 */
}

순서는 고정되어 있고 font-sizefont-family가 모두 필요합니다. line-height는 슬래시가 있는 크기 다음에 갑니다. 약칭이므로, 생략하는 모든 글꼴 속성은 초기값으로 재설정되며, 이는 다른 곳에 설정한 font-weight를 지울 수 있습니다.

글꼴 속성은 **상속**되므로 font-family, font-size, font-weight, font-styleline-height를 컨테이너에 설정하면 요소가 재정의할 때까지 내부 모든 것에 적용됩니다. 기본 유형을 한 번 body에 설정하고 선택적으로 재정의하는 것이 관용적인 패턴입니다. CSS 작동 방식 장은 상속 및 캐스케이드가 최종 값을 결정하는 방법을 자세히 설명합니다.

font 약칭은 이들 중 여러 개를 한 번에 설정하며, 그 함정은 실제입니다: 약칭이므로 설정할 수 있지만 생략하는 모든 롱핸드는 초기값으로 재설정됩니다. font: 1rem/1.5 system-ui를 작성하면 앞에서 설정한 font-weight, font-style 또는 font-variant가 조용히 정상으로 지워집니다. 구문도 고정된 순서를 가지며 필수 두 부분인 font-sizefont-family는 슬래시로 부착된 선택적 line-height입니다.

css
.callout {
  font: italic 700 1rem/1.5 system-ui, sans-serif;  /* 스타일 굵기 크기/줄-높이 패밀리 */
}

두 가지 더 고급 참고. 현대 변수 글꼴은 연속적인 굵기 범위(때로는 너비 및 기울기)를 하나의 파일에 패킹하므로 글꼴이 해당 축을 노출할 때 font-weight: 550은 반올림된 것이 아니라 실제로 그려진 값일 수 있습니다. 그리고 크기 조정 섹션의 접근성 규칙은 이 모든 것에 대해 유지됩니다: 크기를 rem으로 유지하고 줄 높이를 단위 없게 유지하여 읽는 사람이 기본 글꼴 크기를 조정하거나 페이지를 확대/축소할 때 전체 유형 시스템이 확대/축소되고 텍스트를 고정 픽셀 그리드에 고정하지 않습니다.

Juno글꼴 약칭 및 상속 글꼴 설정은 내부의 요소로 전달되므로 font-familybody에서 한 번 설정하면 모든 것이 상속합니다. 이것은 스타일시트의 맨 위 근처에 타이포그래피를 한 곳에 유지합니다. 개별 요소는 변경해야 할 비트만 재정의합니다.
Juno글꼴 약칭 및 상속 글꼴 속성은 상속되므로 body에서 설정된 기본 유형은 아래로 흐르고 다른 것만 재정의합니다. font 약칭은 크기, 줄 높이 및 패밀리를 함께 패킹하지만 함정을 봅니다: 생략하는 모든 것은 초기값으로 재설정되며, 이는 다른 곳에 설정한 굵기를 지울 수 있습니다. 그 순서는 고정되어 있으며, 크기와 패밀리가 필요합니다.
Juno글꼴 약칭 및 상속 글꼴 속성은 상속되므로 body에서 기본 유형을 설정하고 선택적으로 재정의합니다. font 약칭은 생략하는 모든 롱핸드를 초기값으로 재설정하므로 앞에서 설정한 굵기나 스타일을 조용히 지울 수 있습니다. 알고 도달하십시오. 크기를 rem으로, 줄 높이를 단위 없게 유지하여 읽는 사람의 기본 크기와 줌으로 유형이 확대/축소되도록 하고, 하나의 파일에서 연속적인 굵기 범위가 필요할 때 변수 글꼴에 기대십시오.