
6日でできる 新HTML入門|文字書式のCSS②
行間や文字の並びを整えることで、Webページの文章はさらに読みやすく、心地よく伝わるようになります。
文字サイズや文字色、太さ、フォントを指定すると、文章の印象を大きく変えられます。しかし、読みやすい文章を作るためには、文字そのものの形だけでなく、行と行の間隔、文字の揃え方、文字と文字の間隔なども大切です。
たとえば、文章の行間が狭すぎると、上下の文字が詰まって見えてしまいます。反対に、行間が広すぎると、同じ段落の文章がばらばらに見えることがあります。また、見出しや画像を中央に配置したり、案内文を右側に揃えたりすることで、ページの構成を分かりやすく見せられます。
ここでは、行間を指定するline-height、複数の文字書式をまとめるfont、文字や画像の水平方向の位置を整えるtext-align、文字間隔を指定するletter-spacing、単語間隔を指定するword-spacingについて解説します。
それぞれのプロパティの役割と使い方を理解し、読みやすさを意識した文字デザインを作っていきましょう。
line-heightで行間を調整する
line-heightは、文章の行の高さを指定するCSSプロパティです。横書きの文章では、各行を配置する行ボックスの高さを設定するため、見た目としては行と行の間隔を調整する働きがあります。
文章が1行だけの場合は、line-heightによる違いが分かりにくいことがあります。複数行の段落に指定すると、行間が広がったり狭くなったりする様子を確認しやすくなります。
基本的な書き方は次のとおりです。
line-height:1.8;1.8は、要素の文字サイズを基準にして行の高さを1.8倍にする指定です。単位を付けない数値を指定した場合、その数値と要素のfont-sizeを掛けた値が行の高さとして使われます。
たとえば、文字サイズが16pxでline-height:2;を指定した場合、行の高さはおおよそ32pxになります。
| 指定例 | 内容 |
|---|---|
| line-height:normal; | ブラウザの標準的な行の高さを使う |
| line-height:1.5; | 文字サイズの1.5倍を行の高さにする |
| line-height:2; | 文字サイズの2倍を行の高さにする |
| line-height:24px; | 行の高さを24pxにする |
| line-height:150%; | 文字サイズに対して150%の行の高さにする |
単位なしの数値で指定する方法
line-heightでは、1.5や1.8のような単位なしの数値がよく使われます。
p {
line-height:1.8;
}この指定は、p要素の文字サイズに合わせて行の高さを計算します。文字サイズが変わった場合でも、それぞれの文字サイズを基準に行の高さが調整されます。
line-heightは子要素へ継承されるプロパティです。単位なしの数値を使うと、子要素自身の文字サイズを基準に計算されるため、継承による予想外の表示を避けやすくなります。MDNでも、多くの場合は単位なしの数値が好ましい指定方法として案内されています。
本文では、次のような指定から試すと分かりやすいです。
line-height:1.5;
line-height:1.8;
line-height:2;数値が大きくなるほど、行と行の間隔が広くなります。ただし、広げすぎると同じ段落の文章がつながって見えにくくなるため、実際の文章量や文字サイズを見ながら調整しましょう。
単位を付けて指定する方法
line-heightには、pxなどの単位を付けた長さも指定できます。
line-height:24px;この場合は、文字サイズに対する倍率ではなく、行の高さを24pxとして指定します。
固定した長さで行の高さを管理できる一方、文字サイズが大きくなっても行の高さは自動的に同じ割合で広がりません。そのため、あとからfont-sizeを変更すると、文字と文字が接近したり、行の高さが足りなくなったりする可能性があります。
| 指定方法 | 特徴 |
|---|---|
| line-height:1.8; | 文字サイズを基準に倍率で調整する |
| line-height:24px; | 行の高さを固定した長さで指定する |
| line-height:150%; | 文字サイズを基準に割合で指定する |
| line-height:normal; | ブラウザやフォントに応じた標準値を使う |
文章を読みやすくする目的では、まず単位なしの1.5や1.8などを試し、必要に応じて調整するとよいでしょう。
図1:line-heightによる行間の違い

この図から分かること
line-heightを指定すると、文章の行と行の間隔を調整できます。normalではブラウザの標準的な行間が使われ、2を指定すると文字サイズのおおよそ2倍の行の高さになります。
行間を少し広げると、複数行の文章を目で追いやすくなります。ただし、行間が広ければ広いほどよいわけではありません。文章の文字サイズや1行の長さを確認しながら、読みやすい値を選ぶことが大切です。
line-heightを比較するHTMLファイルの例
ここでは、2つの段落に異なるline-heightを指定し、行間の違いを確認します。
1つ目の段落にはnormal、2つ目の段落には2を指定します。
ファイル名: Lesson11-1.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>読書案内の行間調整</title>
<style>
p.default {
line-height:normal;
}
p.spacious {
line-height:2;
}
</style>
</head>
<body>
<h1>今月の読書案内</h1>
<h2>標準の行間</h2>
<p class="default">
このページでは、休日にゆっくり読みたい小説を紹介します。
登場人物の心の変化を丁寧に描いた作品は、
物語の世界にじっくり入りたいときにおすすめです。
</p>
<h2>広めの行間</h2>
<p class="spacious">
このページでは、休日にゆっくり読みたい小説を紹介します。
登場人物の心の変化を丁寧に描いた作品は、
物語の世界にじっくり入りたいときにおすすめです。
</p>
</body>
</html>ブラウザの表示例

このHTMLでは、p.defaultとp.spaciousという2つのクラスセレクタを使っています。
p.defaultにはline-height:normal;を指定し、ブラウザの標準的な行間を使用しています。p.spaciousにはline-height:2;を指定し、文字サイズの2倍を基準にした行の高さにしています。
| クラスセレクタ | CSS | 役割 |
|---|---|---|
| p.default | line-height:normal; | 標準の行間にする |
| p.spacious | line-height:2; | 行の高さを文字サイズの2倍にする |
HTMLソース内の改行やスペースは、通常のp要素ではそのままブラウザ上の改行として表示されるとは限りません。しかし、画面幅に応じて文章が複数行になれば、line-heightによる行間の違いを確認できます。
読みやすい行間を考える
line-heightは、単に文章を広く見せるためではなく、読みやすさを整えるために使います。
本文の行間が狭すぎると、上下の行を見間違えやすくなることがあります。反対に、行間が広すぎると、次の行とのつながりが弱く見えることがあります。
主要な段落コンテンツでは、line-heightを1.5以上にすることがアクセシビリティ上の目安として案内されています。単位なしの値を使うと、文字サイズを拡大した場合にも同じ割合で行の高さが広がります。
| 文章の種類 | line-heightの考え方 |
|---|---|
| 長い本文 | 1.5から1.8程度を基準に確認する |
| 短い説明文 | 1.4から1.6程度でも読みやすい場合がある |
| 大きな見出し | 本文より狭めでも読みやすい場合がある |
| 小さい注意書き | 文字が重ならないよう、行間を十分に確保する |
値は固定的な正解ではありません。フォント、文字サイズ、文章量、画面幅によって読みやすさが変わるため、実際のページで確認しながら決めましょう。
fontで文字書式をまとめて指定する
fontは、複数のフォント関連プロパティを1つにまとめて指定できるショートハンドプロパティです。
たとえば、次の5つのCSSを個別に指定するとします。
font-style:italic;
font-weight:bold;
font-size:16px;
line-height:1.8;
font-family:"Yu Gothic", sans-serif;これらはfontを使って次のようにまとめられます。
font:italic bold 16px/1.8 "Yu Gothic", sans-serif;1行にまとめられるため、文字書式を短く記述できます。
ただし、fontでは値を書く順番が決まっています。基本的には次の順番で指定します。
font-style font-weight font-size/line-height font-familyfont-sizeとfont-familyは基本的に必要です。line-heightを含める場合は、font-sizeの直後にスラッシュを入れて指定します。また、font-familyは最後に書きます。
| 指定部分 | 記述例 | 内容 |
|---|---|---|
| font-style | italic | 斜体にする |
| font-weight | bold | 太字にする |
| font-size | 16px | 文字サイズを指定する |
| line-height | /1.8 | 行の高さを指定する |
| font-family | "Yu Gothic", sans-serif | 使用するフォントを指定する |
fontショートハンドの読み方
次の指定を、左から順番に分解してみましょう。
font:italic bold 16px/1.8 "Yu Gothic", sans-serif;| 記述 | 対応するCSSプロパティ |
|---|---|
| italic | font-style |
| bold | font-weight |
| 16px | font-size |
| 1.8 | line-height |
| "Yu Gothic", sans-serif | font-family |
font-sizeとline-heightの間にはスラッシュを入れます。
16px/1.8これは、文字サイズを16px、行の高さを文字サイズの1.8倍にするという意味です。
フォント名に空白が含まれる場合は、ダブルクォーテーションで囲みます。そのため、Yu Gothicは"Yu Gothic"と書いています。そのフォントが利用できない環境に備えて、次の候補としてsans-serifも指定しています。
fontを使ったHTMLファイルの例
ここでは、紹介文に斜体、太字、文字サイズ、行間、フォントをまとめて指定します。
ファイル名: Lesson11-2.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>fontによる文字書式の一括指定</title>
<style>
.feature-text {
font:italic bold 16px/1.8 "Yu Gothic", sans-serif;
}
</style>
</head>
<body>
<h1>注目の新刊紹介</h1>
<p class="feature-text">
海辺の小さな町を舞台にした物語です。
登場人物たちの出会いと成長が、落ち着いた文章で丁寧に描かれています。
</p>
</body>
</html>ブラウザの表示例

このHTMLでは、feature-textというクラス名を持つp要素に、fontを使って複数の文字書式をまとめて適用しています。
個別に書く場合は、次のようになります。
.feature-text {
font-style:italic;
font-weight:bold;
font-size:16px;
line-height:1.8;
font-family:"Yu Gothic", sans-serif;
}fontを使う場合は、次の1行にまとめられます。
.feature-text {
font:italic bold 16px/1.8 "Yu Gothic", sans-serif;
}個別指定とfontの使い分け
fontは短く書ける点が便利ですが、必ず使わなければならないわけではありません。
CSSを学び始めたばかりの段階では、font-style、font-weight、font-size、line-height、font-familyを個別に書いたほうが、何を指定しているのか分かりやすい場合があります。
| 書き方 | 向いている場面 |
|---|---|
| 個別のプロパティで指定 | それぞれの役割を分かりやすくしたい |
| fontで一括指定 | 複数の文字書式を短くまとめたい |
| 一部だけ変更 | font-sizeやfont-weightだけを個別に指定したい |
fontでは指定順序が決まっているため、順番を間違えるとCSSが正しく適用されないことがあります。まず個別指定で各プロパティの意味を理解し、慣れてからfontを使うとよいでしょう。
図2:fontによる一括指定とtext-alignによる配置

この図から分かること
fontを使うと、斜体、太さ、文字サイズ、行間、フォントをまとめて指定できます。指定する順番にはルールがあり、文字サイズと行間はスラッシュで区切ります。
text-alignは、文字書式そのものではなく、要素内にある文字や画像などの水平方向の位置を整えるプロパティです。目的に応じて中央揃えや右揃えを使い分けます。
text-alignで水平方向の位置を揃える
text-alignは、ブロック要素や表のセル内にあるインラインレベルの内容を、水平方向にどのように揃えるか指定するCSSプロパティです。文章だけでなく、親要素内にあるインライン画像の位置にも影響します。(MDN Web Docs)
基本的な書き方は次のとおりです。
text-align:center;この指定では、対象となる要素内の内容を中央に揃えます。
| 値 | 説明 |
|---|---|
| left | 左側に揃える |
| center | 中央に揃える |
| right | 右側に揃える |
| justify | 両端に揃える |
| start | 文章の書字方向における開始側へ揃える |
| end | 文章の書字方向における終了側へ揃える |
日本語の横書きページでは、本文は左揃えにすることが一般的です。ページタイトルや短いキャプションでは中央揃え、日付や補助情報では右揃えが使われることがあります。
leftで左揃えにする
leftを指定すると、内容を要素の左側に揃えます。
text-align:left;通常の日本語本文では、左揃えが読みやすいことが多いです。長い文章を中央揃えや右揃えにすると、行ごとに文章の開始位置が変わり、読み進めにくくなる場合があります。
centerで中央揃えにする
centerを指定すると、内容を中央に揃えます。
text-align:center;ページタイトル、短い案内文、写真のキャプションなどで使いやすい指定です。
ただし、長い本文をすべて中央揃えにすると、文章の開始位置が行ごとに変わります。数行以上の長い説明文では、読みやすさを確認してから使いましょう。
rightで右揃えにする
rightを指定すると、内容を右側に揃えます。
text-align:right;更新日、署名、補足情報など、ページの右側に置きたい短い文章に利用できます。
justifyで両端揃えにする
justifyを指定すると、行の左右がそろうように文字間や単語間の空間が調整されます。
text-align:justify;text-align:justifyは現在の主要なブラウザで広く利用できます。(MDN Web Docs)
ただし、文章の長さや言語、フォント、表示幅によっては、文字間の広がり方が不自然に見える場合があります。特に短い行では、間隔が広く見えることがあるため、実際の文章で表示を確認することが大切です。
text-alignを使ったHTMLファイルの例
ここでは、写真ギャラリーを例にして、中央揃えと右揃えを指定します。
使用する画像ファイルはbeach-view.pngです。Lesson11-3.htmlと同じフォルダに保存しておきます。
ファイル名: Lesson11-3.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>海辺のフォトギャラリー</title>
<style>
.center {
text-align:center;
}
.right {
text-align:right;
}
</style>
</head>
<body>
<h1 class="center">海辺のフォトギャラリー</h1>
<p class="center">
穏やかな波が広がる海辺の風景<br>
<img src="beach-view.png" alt="青空の下に広がる海辺の風景">
</p>
<p class="right">撮影地:潮風海岸</p>
</body>
</html>ブラウザの表示例

このHTMLでは、centerクラスを持つh1要素とp要素にtext-align:center;を指定しています。
p要素の中には文章とimg要素があります。img要素はインラインレベルの内容として配置されるため、親となるp要素にtext-align:center;を指定すると、画像も中央に配置されます。
rightクラスを持つ最後のp要素には、text-align:right;を指定しています。
| 対象 | class属性 | CSS |
|---|---|---|
| h1要素 | center | 中央揃え |
| 画像を含むp要素 | center | 文章と画像を中央揃え |
| 撮影地のp要素 | right | 文章を右揃え |
text-alignを指定する相手に注意する
text-alignは、文字や画像そのものに対して画面全体の位置を直接指定するというより、親となるブロック要素の中で、インラインレベルの内容をどのように配置するか決めます。
たとえば、画像を中央に配置する場合は、画像を囲んでいるp要素にtext-align:center;を指定できます。
<p style="text-align:center;">
<img src="photo.png" alt="山の風景">
</p>見出しの文字を中央に揃える場合は、h1要素に直接指定できます。
<h1 style="text-align:center;">写真ギャラリー</h1>文章全体を中央に移動したいのか、要素そのものの幅や位置を中央にしたいのかによって、使うCSSは異なります。text-alignは、主に要素内の文字やインライン内容の揃え方を指定するプロパティだと覚えておきましょう。
letter-spacingで文字間隔を指定する
letter-spacingは、文字と文字の間隔を調整するCSSプロパティです。指定した値は、フォントが本来持っている文字間隔に加えられます。
正の値を指定すると文字間隔が広がり、負の値を指定すると文字間隔が狭くなります。
letter-spacing:2px;この指定では、文字と文字の間に2px分の間隔を加えます。
| 指定例 | 内容 |
|---|---|
| letter-spacing:normal; | フォントの標準的な文字間隔を使う |
| letter-spacing:1px; | 文字間隔を少し広げる |
| letter-spacing:2px; | 文字間隔を2px広げる |
| letter-spacing:-1px; | 文字間隔を狭くする |
| letter-spacing:0.1em; | 文字サイズを基準に間隔を広げる |
見出しや短いキャッチコピーでは、文字間隔を少し広げると落ち着いた印象になる場合があります。一方、本文で大きな値を指定すると、文章がばらばらに見えることがあります。
非常に大きな正の値や負の値は、文字が離れすぎたり重なったりして読みにくくなるため注意が必要です。読みやすい値はフォントによっても異なります。
letter-spacingの指定例
文字間隔を2px広げる場合は、次のように書きます。
<p style="letter-spacing:2px;">
ゆったりした文字間隔で案内文を表示します。
</p>少しだけ広げたい場合は、1px程度から試すと変化を確認しやすくなります。
<h2 style="letter-spacing:1px;">
今月のおすすめ特集
</h2>負の値を指定すると文字間隔を狭くできます。
<p style="letter-spacing:-0.5px;">
文字間隔を少しだけ狭くした文章です。
</p>ただし、負の値を大きくしすぎると文字同士が重なる可能性があります。特別な目的がなければ、本文ではnormalまたは小さな正の値を使うと安心です。
word-spacingで単語間隔を指定する
word-spacingは、単語と単語の間隔を調整するCSSプロパティです。フォントやブラウザが持つ通常の単語間隔に、指定した長さが追加されます。
word-spacing:8px;この指定では、単語間の空間を8px広げます。
英語のように単語を半角スペースで区切る文章では、効果を確認しやすいプロパティです。
<p style="word-spacing:8px;">
Web Design Learning Guide
</p>日本語の文章では、通常は単語ごとにスペースを入れないため、word-spacingを指定しても変化が分かりにくい場合があります。日本語と英語が混ざった見出しや、スペースを含む短い英文などで使うと効果を確認しやすくなります。
| 指定例 | 内容 |
|---|---|
| word-spacing:normal; | 標準の単語間隔を使う |
| word-spacing:4px; | 単語間隔を4px広げる |
| word-spacing:8px; | 単語間隔を8px広げる |
| word-spacing:-1px; | 単語間隔を狭くする |
| word-spacing:0.3em; | 文字サイズを基準に間隔を追加する |
word-spacingも、大きすぎる正の値や負の値を指定すると、単語が離れすぎたり重なったりして読みにくくなります。フォントによって文字幅が異なるため、すべてのフォントで同じように読みやすくなる固定値はありません。(MDN Web Docs)
letter-spacingとword-spacingを同時に使う
letter-spacingとword-spacingは、同じ要素に同時に指定できます。
<p style="letter-spacing:1px; word-spacing:4px;">
Simple Web Design Guide
</p>この指定では、文字間隔に1px、単語間隔に4pxを追加します。
| CSS | 対象 |
|---|---|
| letter-spacing | 文字と文字の間隔 |
| word-spacing | 単語と単語の間隔 |
英語の文章では、letter-spacingを広げると単語内の各文字が離れ、word-spacingを広げると単語同士の間が広がります。
Web Design Guideletter-spacingは、W、e、bなどの文字間に影響します。word-spacingは、WebとDesign、DesignとGuideの間に影響します。
両方を大きくしすぎると文章全体が広がりすぎるため、まずは小さな値から調整しましょう。
図3:letter-spacingとword-spacingの違い

この図から分かること
letter-spacingは、1文字ごとの間隔を調整します。日本語の見出しや短いキャッチコピーにも使いやすいプロパティです。
word-spacingは、スペースで区切られた単語同士の間隔を調整します。そのため、英語の文章や英単語を並べた見出しで効果を確認しやすくなります。
どちらも、値を大きくしすぎると文字や単語がばらばらに見えます。デザインだけでなく、文章を読みやすい状態に保つことが大切です。
行間、揃え、間隔を組み合わせる
今回学んだプロパティは、同じ要素に組み合わせて指定できます。
.introduction {
line-height:1.8;
text-align:left;
letter-spacing:0.5px;
}この指定では、行の高さを文字サイズの1.8倍にし、文章を左揃えにし、文字間隔を0.5px広げています。
英語の短い見出しであれば、次のような指定もできます。
.english-title {
text-align:center;
letter-spacing:2px;
word-spacing:6px;
}| 目的 | 使用するCSS |
|---|---|
| 行と行の間を整える | line-height |
| 複数のフォント指定をまとめる | font |
| 文字や画像を左右中央に揃える | text-align |
| 文字と文字の間を整える | letter-spacing |
| 単語と単語の間を整える | word-spacing |
複数のプロパティを組み合わせるときは、一度に大きく変えるのではなく、1つずつ値を調整すると違いを確認しやすくなります。
読みやすさを優先して調整する
CSSでは、行間や文字間隔を自由に変更できます。しかし、デザインを目立たせることだけを優先すると、文章が読みにくくなる場合があります。
たとえば、次のような指定には注意が必要です。
| 注意したい指定 | 起こりやすい問題 |
|---|---|
| line-heightが小さすぎる | 上下の行が近づき、文章を追いにくくなる |
| line-heightが大きすぎる | 同じ段落のつながりが弱く見える |
| 長文をcenterにする | 各行の開始位置が変わり、読み進めにくくなる |
| letter-spacingを広げすぎる | 単語が文字の集まりに見えにくくなる |
| letter-spacingを狭くしすぎる | 文字が重なって読みにくくなる |
| word-spacingを広げすぎる | 単語同士が離れすぎる |
| word-spacingを狭くしすぎる | 単語の境界が分かりにくくなる |
CSSを指定したあとは、パソコンだけでなく、画面幅の狭い環境でも読みやすいかを確認することが大切です。
CSSが反映されないときの確認ポイント
今回扱ったCSSが正しく反映されない場合は、次の点を確認してみましょう。
| 確認項目 | 内容 |
|---|---|
| プロパティ名 | line-heightやtext-alignを正しく書いているか |
| コロン | プロパティと値の間に半角の:があるか |
| セミコロン | 各指定の最後に半角の;があるか |
| クラス名 | HTML側とCSS側のクラス名が一致しているか |
| fontの順番 | font-style、font-weight、font-size、font-familyの順になっているか |
| スラッシュ | font内のfont-sizeとline-heightを/で区切っているか |
| 単位 | pxを付ける指定で単位を書き忘れていないか |
| 波かっこ | CSSの指定範囲を{ }で正しく囲んでいるか |
| 全角記号 | :や;などの全角記号が混ざっていないか |
特にfontは、値の順番が決まっています。font-familyを途中に書いたり、font-sizeを書かずにline-heightを指定したりすると、意図したCSSにならないことがあります。
使用したCSSプロパティ一覧
| CSSプロパティ | 用途 | 主な値の例 |
|---|---|---|
| line-height | 行の高さや行間を指定する | normal、1.5、2、24px |
| font | 複数のフォント関連CSSをまとめて指定する | italic bold 16px/1.8 "Yu Gothic", sans-serif |
| text-align | 要素内の文字や画像の水平方向の揃え方を指定する | left、center、right、justify |
| letter-spacing | 文字と文字の間隔を指定する | normal、1px、2px、-0.5px |
| word-spacing | 単語と単語の間隔を指定する | normal、4px、8px、0.3em |
