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

タイポグラフィ

docs.scrimba.com

ウェブ上で人々が読むもののほとんどはテキストであり、ページが放つ雰囲気の大部分はそのテキストがどのように配置されているかから生まれます。タイプフェイスを変更し、行間隔を調整し、行の長さを制限すれば、同じパラグラフは窮屈で不快な見た目から落ち着きがあり読みやすい見た目に変わります。これは装飾ではありません。タイポグラフィです。テキストを読むのがどれほど快適かを決定するCSSプロパティの数々であり、このチャプターは日々使用するものの一覧です。

フォントの選択

フォントを選択するプロパティはfont-familyであり、1つのフォントではなくリストを指定します。このリストは**フォントスタック**です。ブラウザは最初のフォントを試し、そのフォントが利用できない場合は次のフォントにフォールバックし、以下同様に続きます。

css
body {
  font-family: "Helvetica Neue", Arial, sans-serif;  /* Helveticaを試す、次にArial、最後は任意のサンセリフ */
}

リストの最後は常にsans-serifserifのようなジェネリックファミリーであるべきです。これがセーフティネットです。名前付きフォントがリーダーのデバイスにない場合でも、ブラウザは選択していないデフォルトではなく何か適切なものを表示します。スペースを含むフォント名は引用符で囲みます。1語のフォント名は引用符は不要です。

font-familyはカンマ区切りの**フォントスタック**を取ります。ブラウザはリスト内で実際にレンダリングできる最初のフォントを使用します。各名前は前のフォントのフォールバックであり、リストはジェネリックファミリー(sans-serifserifmonospace)で終了して、常に最終的な答えがあるようにします。

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

指定するフォントについて2つの広いオプションがあります。システムフォントスタックは各オペレーティングシステムのデフォルトインターフェイスフォントをリストするので、ページはリーダーのデバイスが既に使用しているフォントを借りています。ダウンロードのコストはなく、ネイティブに感じられるので、多くのアプリがこれを使用しています。

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

もう1つのオプションはウェブフォントです。フォントファイルをロードして、すべてのリーダーが同じタイプフェイスを見るようにします。Google Fontsのようなホストからリンクするか、@font-faceで自分でホストするかできます。これはリーダーが待つダウンロードのコストで外観を制御します。

font-familyは**フォントスタック**を左から右に解決し、ブラウザがレンダリングできる最初のファミリーを選択します。これがリストがジェネリックファミリー(sans-serifserifmonospace)で終了する理由であり、保証された最後の手段があります。選択したフォント名の背後には2つの戦略があり、それらはトレードオフが異なります。

システムフォントスタックは各プラットフォームのネイティブUIフォントに名前を付けるので、ページはオペレーティングシステムが既に提供するタイプフェイスを継承します。何もダウンロードしないので、ロード遅延やレイアウトシフトがなく、テキストはすべてのデバイスでネイティブに見えます。トレードオフは、ページがプラットフォーム間で少し異なることです。これはアプリのようなインターフェイスには問題ありませんが、1つの一貫したフェイスが必要なブランドには間違っています。

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;         /* ウェイト範囲をカバーする1つの可変ファイル */
  font-display: swap;           /* フォールバックテキストをすぐに表示し、読み込まれたらスワップ */
}

body {
  font-family: "Satoshi", system-ui, sans-serif;  /* 名前付きウェブフォント、次にネイティブフォールバック */
}

ウェブフォント使用時にもフォールバックが重要である理由は、ダウンロードが遅い場合や失敗する場合があり、font-display: swapはその間フォールバックファミリーをレンダリングするためです。ウェブフォントと同様のメトリクスを持つフォールバックを選択することで、スワップからレイアウトのジャーを防ぎます。

Junoフォントの選択font-familyは1つのフォントではなくリストを取ります。ブラウザは見つけることができる最初のフォントを使用します。リストの最後は常にsans-serifのようなジェネリックファミリーで終了して、安全なフォールバックがあるようにします。スペースを含む任意のフォント名を引用符で囲みます。
Junoフォントの選択 フォントスタックはジェネリックファミリーで終了するフォールバックのリストであり、ブラウザはレンダリングできる最初のフォントを使用します。システムフォントスタックはデバイスのネイティブフォントを無料で借用し、ダウンロードがないため、ウェブフォントはファイルをロードしてすべてが同じフェイスを見るようにします。アプリのような作業にはシステムスタックを選択し、外観が一貫している必要がある場合はウェブフォントを選択します。
Junoフォントの選択 スタックは左から右に解決し、ジェネリックファミリーで終了する必要があります。リーダーは常にテキストを見ます。システムスタックはコストがかからず、レイアウトをシフトしませんが、プラットフォーム間で異なります。ウェブフォントはfont-display: swapと整合性の取れたフォールバックで保護する必要があるダウンロードのコストでの1つの一貫したフェイスです。キャッシングとサードパーティリクエストを制御したい場合は@font-faceで自分でホストします。

テキストのサイズ設定

テキストサイズはfont-sizeで設定します。ピクセルで値を指定できますが、到達すべきサイズは**rem**です。これはページのベースフォントサイズに結びついた単位です。1つのremはブラウザのデフォルトテキストサイズに等しく、これは通常16pxであるので、1remは通常の読みサイズで、1.25remは少し大きいサイズです。

css
body {
  font-size: 1rem;             /* ベースの読みサイズ、通常16px */
}
h1 {
  font-size: 2rem;             /* ベースサイズの2倍 */
}

font-sizeはテキストのサイズを設定し、本文についてはpxではなく**rem**でサイズを設定する必要があります。1つのremはルート要素のフォントサイズであり、デフォルトは16pxであり、リーダーはブラウザ設定で変更できる値です。remでサイズ設定することは、リーダーがデフォルトを変更する場合はテキストがスケールし、pxでサイズ設定すれば、それはロックされることを意味します。

css
:root {
  font-size: 100%;             /* リーダーのデフォルトを尊重します。通常16px */
}
p {
  font-size: 1rem;             /* リーダーがデフォルトを変更した場合にスケール */
}

本文テキストをpxではなくremでサイズ設定してください。リーダーが選択したサイズを尊重するためです。サイズ単位チャプターはremem、パーセンテージ、ビューポート単位の解決方法を詳しく説明します。タイポグラフィの短いバージョンは、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、それでも拡張 */
}

font-sizeについてemよりもremを選択してください。em親のフォントサイズに対する相対値であるため、ネストされるとemが複合します。emでサイズ設定された要素が別のemでサイズ設定された要素の内側にあると乗算され、3段階ネストされたリストは予期せず縮小または成長する可能性があります。remは常に単一のルート値を参照するため、要素がどれほど深く座っていても予測可能のままです。これはズーム(pxを含むすべてをスケール)とは異なることに注意してください。remが保護するケースはリーダーがデフォルトフォントサイズを特に上げることであり、多くの人々がこれを行い、pxテキストは無視します。

Junoテキストのサイズ設定font-sizeはテキストがどのくらい大きいかを設定し、remは到達すべき単位です。1つのremはブラウザの通常のテキストサイズであるため、1remは通常で、2remは2倍大きいです。本文テキストをpxでサイズ設定することを避けてください。次のレベルがそれを掘り下げます。
Junoテキストのサイズ設定 本文テキストをpxではなくremでサイズ設定してください。1つのremはリーダーのルートフォントサイズであるため、rem内のテキストはデフォルトを変更するときにスケールし、px内のテキストは動かないままです。サイズ単位チャプターは計算をカバーします。ただし、タイプの場合、ルールは短いです。人が読むもののためにremを使用します。
Junoテキストのサイズ設定remはリーダーが制御するルートフォントサイズを追跡するため、px本文テキストは意図的に選択したアクセシビリティの選択を静かにオーバーライドします。emよりもremに到達してください。emは親に対する相対値で、要素がネストされるとき複合します。これはリーダーのデフォルトテキストサイズに関するもので、ページズームとは別のものです。

ウェイトとスタイル

2つのプロパティが文字の形状を変更します。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は、1つ存在する場合、フォントの真のイタリック設計を与え、機械的な傾きではなく別に描かれた傾けられたフェイスです。大きなブロックをスタイル設定するためにそれを予約します。イタリックは読むのが難しくなります。

font-weight100から900までの**数値ウェイト**を取ります。normal400のエイリアスで、bold700のエイリアスです。数値は、フォントが実際にそのウェイトを含む場合にのみ異なる厚さに解決します。600400700のみを搭載するフォントから要求すると、ブラウザは実際のウェイトに丸めるか、ストロークを厚くすることで偽のボールドを合成します。これは設計されたウェイトよりも悪く見えます。利用可能なウェイトはロードしたもの次第です。2つのウェイトでのみロードされたウェブフォントは、記述する番号に関係なく2つを与えます。

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まで実行されますが、フォントに存在する場合にのみ数値が着地します。そうしないと、ブラウザはより悪く見えるフェイクボールドを丸めるか合成します。したがって、2つのウェイトでロードされたウェブフォントは、タイプしたことに関係なく2つを与えます。italicはそれが存在するときに描かれたイタリックフェイスを拾い、それが存在しないときに合成スラントにフォールバックします。

テキストを読みやすくするための間隔

快適なテキストはほぼスペースについてです。line-heightは行間のギャップを制御し、それに少しスペースを与えることで、段落がはるかに読みやすくなります。

css
p {
  line-height: 1.5;            /* フォントサイズの1.5倍 */
}

1.5のような単位のない平数値を使用してください。これは「フォントサイズの1.5倍」を意味するため、スペーシングはテキストとともに成長します。詰まった行は、ページが読むのが難しい理由の最も一般的な理由の1つであり、この1つの値はほとんどを修正します。

3つのプロパティは読みやすいテキストの大部分を行います。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文字幅です。快適なメジャー、1行あたりの文字数は約45から75の周りに座ります。キャップすることは、行うことができるタイポグラフィの最高の影響の移動の1つです。

読みやすさは3つのコントロールに要約されます。行の高さ、文字間隔、行の長さです。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(トラッキング)は本文テキストではデフォルトのフォントのままにしておくのが最適です。デザイナーはすでにそれを調整しています。小さな正の値は、混雑する可能性があるオールキャップと小文字を支援し、わずかに負の値は大きなディスプレイ見出しを締めることができます。行の長さはメジャーであり、1行あたりの文字数であり、快適なバンドは約45から75文字です。max-widthch(「0」グリフの前進幅)で設定してキャップをフォント追跡し、読む快適さへの効果はほぼすべてのフォント選択を上回ります。

Junoテキストを読みやすくするための間隔line-heightは行間のスペースを設定し、約1.5の値はテキストをはるかに読みやすくします。単位のないプレーンナンバーとして記述して、スペーシングがテキストで成長するようにします。詰まった行はページが読むのが難しい感じる最大の理由であり、これはほとんどを修正します。
Junoテキストを読みやすくするための間隔line-height1.5のような単位のない値を与えて、各要素のフォントサイズでスケール。行の長さをメジャーの周りに45から75文字で保つためにmax-widthchでキャップします。これは最大の読みやすさの勝者の1つです。大文字の見出しを開くためにほぼのみletter-spacingを使用します。
Junoテキストを読みやすくするための間隔line-heightを単位のないままにして、要因として継承してスケール。ユニットは計算された長さを継承し、大きな見出しを重複させます。本文テキストではletter-spacingを単独で離れ、キャップまたは大きなディスプレイタイプにのみ押し付けます。メジャーをmax-widthchで45から75文字の近くでキャップし、読みやすさはほとんどのフォント決定を打ちます。

配置と装飾

3つのプロパティが配置と仕上げのタッチを処理します。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はボックス内の行内テキストを配置します(leftrightcenterjustify)。text-transformは基になるテキストを変更せずに表示する場合を変更します(uppercaselowercasecapitalize)。したがって、スクリーンリーダーはまだ実際の単語を読み、HTMLはクリーンなままです。text-decorationは下線、上線、および取り消し線を制御します。

css
.card-title {
  text-align: center;
}
.nav-link {
  text-decoration: none;              /* デフォルトの下線を取り除く */
}
.price--old {
  text-decoration: line-through;      /* 古い価格を取り消した */
}

2つの習慣が保つ価値があります。細かいハイフネーション制御がなければウェブ本文テキストのtext-align: justifyを避けてください。単語間の醜い白いスペースの川を開きます。そして、リンクから下線を削除するときは、別のキュー(色など)がまだそれをリンクとしてマークするか、クリック可能であることを隠しました。色と背景チャプターは、リンクに異なるアクセス可能な色を与えることをカバーしています。

text-alignは、含むボックス内のコンテンツのインライン配置を設定します。ウェブ本文テキストのjustifyをスキップしてください。ブラウザは単語間隔を拡張することで正当化します。タイプセッターが持つハイフネーションとラインブレーク制御がなければ、それは白いスペースの川を開き、きちんとしたエッジより読みやすさを傷つけます。

text-transformuppercaselowercasecapitalize)は、表現されたケースのみを変更し、ソーステキストは変更しません。アクセシビリティツリーとマークアップは実際のケーシングを保ちます。それはオールキャップをすべて大文字にする正しい方法です。HTMLに大文字を入力するのではなくCSSで変換して、支援技術が単語を文字ごとに読まず、コンテンツは通常の散文として編集可能なままです。大文字化を、わずかに正のペアリングletter-spacingでペアリングしてください。キャップセットのデフォルトトラッキングを読み込んでいるため。

text-decorationはラインスタイル、色、厚さの短縮版です(text-decoration: underline wavy crimson 2px)。text-decoration-colortext-underline-offsetのような長縮版で、より細かく制御します。一般的なケースはリンクのtext-decoration: noneであり、それと一緒に来るルールは別の表示の食料を保つことです。下線を取り除くとテキストがリンクであるという主な信号を取り除きます。

css
.headline {
  text-transform: uppercase;
  letter-spacing: 0.04em;             /* キャップはスペースが必要です */
}

a {
  text-decoration-color: currentColor;
  text-underline-offset: 0.15em;      /* 下線をベースラインから押し出す */
}

text-aligntext-transformline-heightは継承されるため、コンテナーに設定することで、その内側のテキストにフローしします。セレクターチャプターは、それらを設定するための正しいコンテナーをターゲットにしています。

Juno配置と装飾text-alignはテキストを左、右、中央に移動し、text-transform: uppercaseは大文字で表示し、text-decorationは下線などのラインを追加または削除します。CSSでの大文字化は、実際のテキストを通常の単語として保つため、二度と大文字で再入力することはありません。リンクの下線を削除したい場合はtext-decoration: noneに到達します。
Juno配置と装飾text-alignはインラインテキストを配置し、text-transformは表示のみの場合を変更し、text-decorationは下線と取り消し線を処理します。ウェブでjustifyをスキップしてください。単語間の醜いギャップを開きます。リンクの下線を削除すれば、別のキュー(色など)を保って、人々はそれでもクリック可能であることを見ています。
Juno配置と装飾 ウェブ本文テキスト用のjustifyを避けてください。ブラウザは単語間隔を拡張し、白いスペースの川を開きます。大文字でtext-transformを行い、大文字を入力することで、支援技術が実際の単語を読んで、ソースがクリーンなままです。キャップに少しletter-spacingを追加します。リンクのtext-decoration: noneを設定するとき、別の食料を保つため、それでもリンクを読みます。

フォント短縮形と継承

フォントプロパティは便利な特性を持っています。それらは降ります。font-family<body>に設定し、その内側のすべての段落、見出し、リンク継承は、自分自身を繰り返すことはめったにありません。

css
body {
  font-family: system-ui, sans-serif;  /* これの内側のすべてがこれを継承 */
  line-height: 1.5;
}

このため、タイポグラフィのほとんどはスタイルシートの上部近くの1つの場所に住んでいて、個々の要素は異なるものだけをオーバーライドしています。

フォントプロパティは**継承**します。font-familyfont-sizefont-weightfont-styleline-height、色はすべて、オーバーライドされない限り、要素から子孫に渡ります。これがbodyに1回ベースタイプを設定する理由です。CSSの仕組みチャプターが詳しく説明するように、それはどのように流れ落ちます。

また、複数のプロパティを1つの宣言にパックするfont短縮形もありますが、使用する前に知る価値のあるキャッチが来ます。

css
body {
  font: 1rem/1.5 system-ui, sans-serif;   /* サイズ/行の高さ家族 */
}

順序が固定され、font-sizefont-familyの両方が必要です。line-heightはスラッシュで大きさの後に行きます。短縮形であるため、省略したフォントプロパティは初期値にリセットされます。これは別の場所で設定したfont-weightをワイプできます。

フォントプロパティは**継承**下の木、したがってfont-familyfont-sizefont-weightfont-styleline-heightはコンテナーに設定され、要素がオーバーライドするまで内部のすべてに適用されます。bodyに1回ベースタイプを設定し、選択的にオーバーライドすることは、表現的なパターンです。CSSの仕組みチャプターは継承とカスケードが最終値をどのように決定するかについて詳しく述べています。

font短縮形はこのいくつかを一度に設定し、そのげなえは本物です。それは短縮形であるため、設定できるすべてのロングハンドですが、省略しているものは初期値にリセットされます。font: 1rem/1.5 system-uiを書き、それ以前に設定されたfont-weightfont-stylefont-variantは静かに通常に戻ります。構文は固定順と2つの必須パーツfont-sizefont-familyも持ち、オプションのline-heightがスラッシュによってサイズに取り付けられています。

css
.callout {
  font: italic 700 1rem/1.5 system-ui, sans-serif;  /* スタイルウェイトサイズ/行の高さ家族 */
}

2つのより高度なメモ。モダン可変フォントは、重みの連続範囲(時々幅と傾斜)を1つのファイルに詰め込むため、フォントがそのシャフトを露出させるとき、font-weight: 550は丸められた代わりに実際に描かれた価値可能です。そして、サイジングセクションからのアクセシビリティルールはこれすべてを保持します。リーダーがデフォルトフォントサイズまたはズームページを調整するときは、テキストを固定ピクセルグリッドにピン留めするのではなく、remにサイズを保ち、行の高さを単位のないままにして、タイプシステム全体がスケールするようにします。

Junoフォント短縮形と継承 フォント設定は内部の要素に渡されるため、bodyに1回font-familyを設定し、すべてが継承します。これはタイポグラフィをスタイルシートの上部近くの1つの場所に保ちます。個々の要素は、異なる必要があるビットのみをオーバーライドします。
Junoフォント短縮形と継承 フォントプロパティは継承されるため、bodyに設定されたベースタイプは流れ落ちて、異なるものだけをオーバーライドします。font短縮形は、サイズ、行の高さ、ファミリーをパックしますが、時計を見てください。省略するものは初期値にリセットされ、別の場所で設定したウェイトを消すことができます。その順序は固定されており、サイズとファミリーが必要です。
Junoフォント短縮形と継承 フォントプロパティ継承、したがってbodyにベースタイプを設定して選択的にオーバーライドします。font短縮形は、省略したすべてのロングハンドを初期値にリセットするため、以前に設定したウェイトまたはスタイルを静かに消すことができます。それを知っていることに到達します。リーダーのデフォルトサイズとズームで段差するようにサイズをremに保ち、行の高さを単位のないままにし、1つのファイルから継続的なウェイト範囲が必要な場合は可変フォントに頼ります。