フロントエンドエンジニア養成所

サイト内全体で標準とするデザインを設定する

サイト全体のデザインに統一感を持たせるには、文字の色やサイズ、行間などを一貫させる必要があります。

しかし、それらを例えば、文字や文章などに毎回個別に指定するのは効率が悪いです。

Webサイト開発では、あらかじめ「標準スタイル」を定めておき、共通のCSSを使って全体に反映させる方法がよく使われます。

style.cssの先頭に以下のコードを追加します。

@charset "UTF-8";

html {
    font-size: 62.5%;
}

body {
    color: #333;
    font-size: 1.6rem;
}

a {
    display: block;
    text-decoration: none;
    color: #666;
}

ul {
    padding-left: 0;
    margin: 0;
}

html要素、つまり画面全体にfont-size: 62.5%を適用しています。

ブラウザのデフォルトの文字のサイズ(font-size)は16pxですが、html要素にfont-size: 62.5%を適用することにより、文字サイズは

// 計算式

16px × 62.5% = 10px

となります。

デフォルトの文字のサイズを10pxにする理由は、文字のサイズを変更する際に使用するremという単位の計算をしやすくするためです。

remはhtmlの文字サイズを基準にした単位です。

たとえば、htmlの文字サイズがデフォルトの16pxのとき、font-size: 1remは16pxを意味します。

ここで、もしfont-sizeをremを使って18pxにしたいとなった場合、どうでしょうか?

// 計算式

18px / 16px = 1.125rem

となり、細かい数字で指定しなければならず、非常に分かりにくいです。

しかし、font-size: 62.5%を適用し、デフォルトのサイズを10pxにしておくと、18pxは、

// 計算式

18px / 10px = 1.8

となり、数字が直感的で計算しやすくなります。

また、font-sizeにremを使う理由は、文字サイズを一括で調整できる便利さにあります。

例えば、サイト全体の文字を今より1px大きい11pxにしたいという要望があった場合、もしサイト全体の文字をpx単位で指定していたら、すべてのfont-sizeを指定している箇所でpxを+1して書き換えなければならなくなります。

しかし、remで指定していた場合、htmlのfont-sizeだけを、

html {
    font-size: 68.75%; /* 16px × 0.6875 = 11px */
}

に変更すれば、サイト全体の文字サイズを一括で変更できます。

このように、font-size: 62.5%を使うことで、remの単位の計算が楽になり、メンテナンス性が向上します。

今回はbodyタグに1.6remを指定することで、サイト内のコンテンツのデフォルトの文字サイズを16pxに設定しています。

リンクを貼るaタグにはtext-decoration: noneを指定し、デフォルトで引かれる下線を削除しています。

ulタグからはマージン(外側の余白)と、左側のパディング(内側の余白)を削除しています。

index.htmlを以下のように修正します。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>サンプルサイト</title>
    <link rel="stylesheet" media="all" href="css/style.css" />
    <link rel="stylesheet" media="all" href="css/reset.css" />
</head>
<body>
<!-- ここから -->
<a>aタグテスト</a>
<ul role="list">
    <li>リストテスト1</li>
    <li>リストテスト2</li>
</ul>
<!-- ここまで追加 -->
</body>
</html>

ブラウザで開いて挙動を確認してみましょう。

次のキャプチャのような見た目になっていれば成功です。

Alt text

このサイトを運営している人

運営者の写真

はじめまして。このサイトを運営しているsidsydです。

エンジニアをしたり、日本酒サイト「酒道」を運営したりしております。

▶ 運営者情報ページへ