あなたに合った学習プランは?LINE適正コース診断はこちら プログラミングが全て無料で学習可能!
【CSS】font-weightとは?太字の指定方法や効かない原因 - 忍者CODEマガジン

【CSS】font-weightとは?太字の指定方法や効かない原因

プログラミング言語の辞書

font-weightは、文字の太さを指定するCSSプロパティです。よく使う値はnormalbold、または400700などの数値です。見出しを強く見せたり、重要な文言を目立たせたりする場面でよく使います。しかし、font-weight: 700;を書いたのに太くならない、boldstrongの違いがわからない、100〜900の数値をどう使えばいいのか迷う方も多いはずです。

この記事では、基本の書き方、数値指定の考え方、太字が効かない原因、実務での使い分けまで解説します。

CSSのfont-weightとは?

font-weightとは、文字の太さを指定するCSSです。

.lead {
  font-weight: bold;
}

この例では、.leadの文字が太字になります。

基本の指定はnormalとbold

初心者の方は、まずnormalboldを覚えれば問題ありません。

意味 よく使う場面
normal 通常の太さ 本文、補足文
bold 太字 見出し、重要文、ボタン
p {
  font-weight: normal;
}

.important {
  font-weight: bold;
}

まずは本文をnormal、強調したい箇所をboldにするだけでも、文字のメリハリは十分に作れます。

font-weightの数値指定 100〜900 の違い

font-weightは、キーワードだけでなく数値でも指定できます。

.title {
  font-weight: 700;
}

数値は100〜900の範囲で指定します。数字が大きいほど太くなります。

数値 目安 使う場面
300 細め 大きな見出し、上品な印象のテキスト
400 通常 本文
500 やや太め 小見出し、ナビゲーション
700 太字 見出し、強調、ボタン
900 かなり太い 短いキャッチコピー、数字

400がnormal、700がboldの目安

多くの場合、font-weight: 400;normalfont-weight: 700;boldに相当します。

.text {
  font-weight: 400;
}

.heading {
  font-weight: 700;
}

100〜900を指定しても、使用しているフォントがその太さを持っていない場合は、見た目の差が出にくいことがあります。

strongタグとfont-weightの違い

HTMLのstrongタグも太字に見えるため、font-weightと混同しやすいです。

指定 役割 使う場面
<strong> 意味として重要であることを示す 文章内の重要語句
font-weight 見た目の太さを変える デザイン調整、見出し、ボタン

意味が重要ならstrong、見た目だけならCSS

文章の意味として重要な箇所にはstrongを使い、単に見た目を太くしたい場合はCSSでfont-weightを指定します。

【HTML】
<p>
  この設定では<strong>保存形式をUTF-8にすること</strong>が重要です。
</p>
【CSS】
strong {
  font-weight: 700;
}

strongはHTMLの意味、font-weightはCSSの見た目です。役割を分けて使うとSEOやアクセシビリティの面でも自然です。

font-weightが効かない原因と対策

font-weightが効かない場合は、CSSの書き方だけでなく、フォント側の対応も確認しましょう。

原因1:その太さのフォントが読み込まれていない

Webフォントを使っている場合、読み込んでいない太さは正しく表示されません。

【NG例】
/* 400だけ読み込んでいるのに700を指定している */
.title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
}

Google Fontsなどでは、400700の両方を読み込む必要があります。

【OK例】
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap" rel="stylesheet">

原因2:日本語フォントの太さの差が少ない

日本語フォントは、英字フォントに比べて太さの差が分かりにくいことがあります。特に本文サイズが小さい場合、500700の差がほとんど見えないこともあります。

太字が弱く見えるからといって、すべてを900にすると読みづらくなります。見出し、本文、強調の役割ごとに太さを分けましょう。

原因3:別のCSSに上書きされている

WordPressテーマやブロックエディターのCSSで、後からfont-weightが上書きされることがあります。

.post-content strong {
  font-weight: 600;
}

検証機能で、どのCSSが最終的に効いているか確認しましょう。

原因4:そもそもフォントがその太さ(ウエイト)に対応していない

Google FontsなどのWebフォントではなく、PCやスマホに最初から入っている「システムフォント」や「フリーフォント」を使う場合に多い原因です。

フォントの種類によっては、そもそも400(Regular)の1種類しか用意されておらず、700(Bold)900のファイル自体が存在しないケースがあります。

フォントがない場合のブラウザの挙動

CSSでfont-weight: 700;と指定しているのに、その太さのフォントファイルが存在しない場合、ブラウザが自動的に文字を横に引き伸ばして無理やり太く見せる「擬似ボールド」という処理が行われます。これにより、文字の輪郭がにじんで不格好に見えたり、ブラウザによっては「まったく太さが変わらない」という現象が起きてしまいます。

デザイン通りに綺麗な太字を表現したい場合は、あらかじめ複数のウエイト(400、500、700など)が用意されているフォント(Noto Sans JPやヒラギノ角ゴなど)を正しく選定する必要があります。

応用:見出し(hタグ)の太字を通常に戻したい場合

font-weightは文字を太くするだけでなく、「最初から太字になっている要素を、普通の太さに戻す」という目的でも実務でよく使われます。

HTMLの<h1><h6>などの見出しタグや、<strong>タグは、CSSを何も書かなくてもブラウザの仕様で最初から太字(bold)で表示されます。

「デザインカンプ(設計図)ではすっきりした細い見出しになっているから、通常の太さに戻したい」という場合は、以下のようにnormal(または400)を指定して太字を打ち消します。

/* 見出しのデフォルトの太字を解除する */
h2 {
  font-weight: normal; /* または 400 */
}

実務のWeb制作では、「太くする指定」と同じくらい「デフォルトの太字を通常に戻す指定」も頻出するため、セットで覚えておくとコーディングの幅が広がります。

実務で使いやすいfont-weightの設計例

実務では、すべての太さを使うより、役割ごとに数値を決めておくと管理しやすくなります。

body {
  font-weight: 400;
}

.section-title {
  font-weight: 700;
}

.nav-link {
  font-weight: 500;
}

.button {
  font-weight: 700;
}
要素 おすすめ 理由
本文 400 長文でも読みやすい
小見出し 600〜700 本文との差が出る
ボタン 700 クリック要素として目立つ
補足文 400 主張しすぎない

公式ドキュメントも確認する

font-weightの仕様を正確に確認したい場合は、MDN Web Docsの公式情報も参考になります。

まとめ:font-weightは意味と見た目を分けて使おう

この記事では、CSSのfont-weightについて解説しました。

font-weightは文字の太さを指定するCSSで、本文は400、強調や見出しは700を基準にすると扱いやすいです。重要な意味を持つ言葉にはstrongタグを使い、デザインとして太くしたい場合はfont-weightを使いましょう。

太字が効かないときは、フォント名、読み込んでいる太さ、CSSの優先順位、日本語フォントの見え方を確認するのが近道です。