テキストとタイポグラフィ

CSS ポッドキャスト - 036: テキストとタイポグラフィ

テキストはウェブの中核的な構成要素の 1 つです。

ウェブサイトを作成する際に、テキストのスタイルを設定する必要はありません。HTML には、実際には妥当なデフォルトのスタイルが用意されています。

ただし、テキストはウェブサイトの大部分を占める可能性が高いため、スタイルを加えて見やすくすることをおすすめします。いくつかの基本的なプロパティを変更することで、ユーザーの読書エクスペリエンスを大幅に向上させることができます。

このモジュールでは、まず font-familyfont-stylefont-weightfont-size など、CSS の基本的なフォント プロパティについて説明します。次に、テキストの段落に影響するプロパティ(text-indentword-spacing など)を詳しく見ていきます。最後に、可変フォントや疑似要素など、より高度なトピックについて説明します。

書体を変更する

対応ブラウザ

  • 1
  • 12
  • 1
  • 1

ソース

テキストの書体を変更するには、font-family を使用します。

font-family プロパティには、特定のフォント ファミリーまたは汎用のフォント ファミリーを参照する文字列のカンマ区切りリストを指定できます。「Helvetica」、「EB Garamond」、「Times New Roman」のように、特定のフォント ファミリーは引用符で囲まれた文字列です。汎用フォント ファミリーは、serifsans-serifmonospace などのキーワードです(MDN のオプションの一覧をご覧ください)。ブラウザは、指定されたリストから最初に利用可能な書体を表示します。

font-family を使用する際は、ユーザーのブラウザで希望のフォントを利用できない場合に備え、汎用フォント ファミリーを少なくとも 1 つ指定する必要があります。通常、代替の汎用フォント ファミリーは優先フォントと同様になります。font-family: "Helvetica"(Sans-Serif フォント ファミリー)を使用する場合、代替フォントは sans-serif にする必要があります。

斜体や斜体を使用する

対応ブラウザ

  • 1
  • 12
  • 1
  • 1

ソース

font-style を使用して、テキストを斜体にするかどうかを設定します。font-style には、normalitalicoblique のいずれかのキーワードを指定できます。

テキストを太字にする

対応ブラウザ

  • 2
  • 12
  • 1
  • 1

ソース

font-weight を使用して、テキストの「太字」を設定します。このプロパティには、キーワード値(normalbold)、相対キーワード値(lighterbolder)、数値(100900)を指定できます。

キーワード normalbold は、それぞれ 400700 の数値と同じです。

キーワード lighterbolder は親要素を基準にして計算されます。この値の決定方法を示した便利なチャートについては、MDN の相対重みの意味をご覧ください。

テキストのサイズを変更する

対応ブラウザ

  • 1
  • 12
  • 1
  • 1

ソース

テキスト要素のサイズを制御するには、font-size を使用します。このプロパティには、長さの値、パーセンテージ、少数のキーワードの値を指定できます。

font-size は、長さとパーセンテージの値に加えて、いくつかのキーワード値(xx-smallx-smallsmallmediumlargex-largexx-large)といくつかの相対キーワード値(smallerlarger)を受け入れます。相対値は、親要素の font-size を基準とします。

行間のスペースを変更します

対応ブラウザ

  • 1
  • 12
  • 1
  • 1

ソース

要素内の各行の高さを指定するには、line-height を使用します。このプロパティには、数値、長さ、パーセンテージ、またはキーワード normal のいずれかを指定できます。一般に、継承による問題を避けるため、長さや割合ではなく数値を使用することをおすすめします。

文字間のスペースを変更する

対応ブラウザ

  • 1
  • 12
  • 1
  • 1

ソース

letter-spacing を使用して、テキスト内の文字間の水平方向のスペースの量を制御します。このプロパティは、empxrem などの長さの値を受け入れます。

この値を指定すると、文字間の自然なスペースが大きくなることに注意してください。以下のデモでは、個々の文字を選択して、レターボックスのサイズと letter-spacing による変化を確認してみましょう。

単語間のスペースを変更する

対応ブラウザ

  • 1
  • 12
  • 1
  • 1

ソース

word-spacing を使用すると、テキスト内の単語間のスペースを増減できます。このプロパティは、empxrem などの長さの値を受け入れます。指定する長さは、通常のスペースに加えて余分なスペースを補うものです。つまり、word-spacing: 0word-spacing: normal と同等です。

font 省略形

省略形の font プロパティを使用すると、フォント関連の多数のプロパティを一度に設定できます。指定できるプロパティは、font-familyfont-sizefont-stretchfont-stylefont-variantfont-weightline-height です。

これらの宿泊施設の注文方法について詳しくは、MDN の font の記事をご覧ください。

テキストの大文字/小文字を変更する

対応ブラウザ

  • 1
  • 12
  • 1
  • 1

ソース

text-transform を使用すると、元の HTML を変更することなく、テキストの大文字と小文字の使い方を変更できます。このプロパティでは、uppercaselowercasecapitalize のキーワード値を使用できます。

テキストに下線、上線、斜線を追加する

対応ブラウザ

  • 1
  • 12
  • 1
  • 1

ソース

text-decoration を使用してテキストに行を追加します。下線が一般的に使用されますが、テキストの上または右に行を追加することもできます。

text-decoration プロパティは、以下で説明するより具体的なプロパティの省略形です。

text-decoration-line プロパティには、キーワード underlineoverlineline-through を指定できます。複数の行に複数のキーワードを指定することもできます。

text-decoration-color プロパティは、text-decoration-line からのすべての装飾の色を設定します。

text-decoration-style プロパティは、キーワード soliddoubledotteddashedwavy を受け入れます。

text-decoration-thickness プロパティは、任意の長さの値を受け取り、text-decoration-line からすべての装飾のストローク幅を設定します。

text-decoration プロパティは、上記のすべてのプロパティの省略形です。

テキストにインデントを追加する

対応ブラウザ

  • 1
  • 12
  • 1
  • 1

ソース

text-indent を使用して、テキスト ブロックをインデントします。このプロパティは、長さ(10px2em など)または含まれるブロックの幅に対する割合(%)で指定します。

はみ出したコンテンツや隠れたコンテンツに対処する

対応ブラウザ

  • 1
  • 12
  • 7
  • 1.3

ソース

非表示コンテンツの表現方法を指定するには、text-overflow を使用します。オプションは、オーバーフロー箇所でテキストを切り捨てる clip(デフォルト)と、オーバーフロー箇所に省略記号(...)を表示する ellipsis の 2 つのオプションです。

空白文字を制御する

対応ブラウザ

  • 1
  • 12
  • 1
  • 1

ソース

white-space プロパティは、要素内の空白文字の処理方法を指定するために使用します。詳しくは、MDN の white-space に関する記事をご覧ください。

white-space: pre は、ASCII アートや慎重にインデントされたコードブロックのレンダリングに役立ちます。

単語の区切りを制御する

対応ブラウザ

  • 1
  • 12
  • 15
  • 3

ソース

word-break を使用して、行をオーバーフローさせるときの単語の「区切り」を変更します。デフォルトでは、ブラウザは単語を分割しません。word-break にキーワード値 break-all を使用すると、ブラウザは必要に応じて個々の文字で単語を区切ります。

テキストの配置を変更

対応ブラウザ

  • 1
  • 12
  • 1
  • 1

ソース

text-align を使用すると、ブロック要素または表のセル要素内のテキストの水平方向の配置を指定できます。このプロパティは、キーワード値 leftrightstartendcenterjustifymatch-parent を受け入れます。

leftright は、テキストをブロックの左側と右側に揃えます。

startend を使用して、現在の入力モードでのテキスト行の開始位置と終了位置を表します。そのため、start は英語では left、アラビア語では右から左(RTL)に記述する文字では right にマッピングされます。これらは論理アライメントです。詳しくは、論理プロパティ モジュールをご覧ください。

center を使用して、テキストをブロックの中央に揃えます。

justify の値を指定すると、テキストが整理され、テキストがブロックの左右の端に揃うように単語の間隔が自動的に変更されます。

テキストの向きを変更する

対応ブラウザ

  • 2
  • 12
  • 1
  • 1

ソース

direction を使用して、テキストの向きを ltr(左から右、デフォルト)または rtl(右から左)に設定します。アラビア語、ヘブライ語、ペルシャ語などの一部の言語は右から左に記述するため、direction: rtl を使用してください。英語と、その他すべての左から右に記述する言語の場合は、direction: ltr を使用します。

テキストのフローを変更する

対応ブラウザ

  • 48
  • 12
  • 41
  • 10.1

ソース

テキストの配置や配置を変更するには、writing-mode を使用します。デフォルトは horizontal-tb ですが、テキストを水平方向に流すために writing-modevertical-lr または vertical-rl に設定することもできます。

テキストの向きを変更する

対応ブラウザ

  • 48
  • 79
  • 41
  • 14

ソース

text-orientation を使用して、テキスト内の文字の向きを指定します。このプロパティの有効な値は mixedupright です。このプロパティは、writing-modehorizontal-tb 以外に設定されている場合のみ関連します。

テキストに影を追加する

対応ブラウザ

  • 2
  • 12
  • 3.5
  • 1.1

ソース

テキストに影を追加するには、text-shadow を使用します。このプロパティには、3 つの長さ(x-offsety-offsetblur-radius)と色が必要です。

詳しくは、シャドウに関するモジュールの text-shadow セクションをご覧ください。

可変フォント

通常、「標準」フォントでは、太字、斜体、簡易など、書体のバージョンごとに異なるファイルをインポートする必要があります。可変フォントとは、さまざまな書体のバリエーションを 1 つのファイルに含めることができるフォントです。

幅と重量のランダムな組み合わせの Roboto Flex

詳しくは、可変フォントに関する記事をご覧ください。

疑似要素

::first-letter 疑似要素と ::first-line 疑似要素

対応ブラウザ

  • 1
  • 12
  • 1
  • 1

ソース

::first-letter 疑似要素と ::first-line 疑似要素は、それぞれテキスト要素の最初の文字と 1 行目をターゲットにします。

::selection 疑似要素

対応ブラウザ

  • 1
  • 12
  • 62
  • 1.1

ソース

::selection 疑似要素を使用すると、ユーザーが選択したテキストの外観を変更できます。

この疑似要素を使用する場合、特定の CSS プロパティ(colorbackground-colortext-decorationtext-shadowstroke-colorfill-colorstroke-width)のみを使用できます。

font-variant

対応ブラウザ

  • 1
  • 12
  • 1
  • 1

ソース

font-variant プロパティは、さまざまな CSS プロパティの省略形であり、small-capsslashed-zero などのフォント バリエーションを選択できます。この省略形に含まれている CSS プロパティは、font-variant-alternatesfont-variant-capsfont-variant-east-asianfont-variant-ligaturesfont-variant-numeric です。使用方法の詳細については、各プロパティのリンクをご覧ください。

理解度チェック

ウェブのタイポグラフィに関する知識をテストします

font-family の一般的な代替として使用できるキーワードは次のうちどれですか。

serif
正解です。
monospace
正解です。
italic
もう一度お試しください。italicfont-style の有効なキーワードです。font-family ではありません。
sci-fi
もう一度お試しください。ただし、fantasyfont-family の有効な汎用的なフォールバックです。
sans-serif
正解です。
helvetica
もう一度お試しください。"Helvetica" は一般的なキーワードではなく、特定のフォント ファミリーを指します。

各単語の最初の文字を大文字に変換するために使用する文はどれですか。例: This is a sentence.This Is A Sentence.

text-capitalize: true;
もう一度お試しください。
text-case: capitalize;
もう一度お試しください。
text-transform: capitalize;
正解です。
font-style: capitals;
もう一度お試しください。
font-variant: capitalize;
もう一度お試しください。

正誤問題: text-orientation を使用してテキストを左、右、または中央に揃える。

正しい
もう一度お試しください。text-orientation は、直線内の文字の回転を変更します。
False
正解です!text-orientation は、直線内の文字の回転を変更します。text-align を使用すると、テキストを左、右、中央(およびその他)に揃えます。

テキスト行間のスペースを変更するには、次の CSS プロパティを使用します。

line-spacing
もう一度お試しください。
leading
もう一度お試しください。「リーディング」はタイポグラフィの行間のスペースを表す正しい用語ですが、有効な CSS プロパティではありません。
baseline-distance
もう一度お試しください。
line-height
正解です。

関連情報