JavaScript学習者のためのCSS基本ガイド:ウェブページのデザインを学ぼう
なぜJavaScriptの前にCSSを学ぶ必要があるのか?
JavaScriptでデザインを変えるためには、CSSの知識がどうしても必要です。留学生の皆さんにもわかりやすい「やさしい日本語」で、大切なポイントを解説します。
JavaScriptはCSSを操作(そうさ)して、デザインを動的に変える役割を持っています。CSSを知っておくことには、次のような戦略的(せんりゃくてき)なメリットがあります。
- CSSを知らないとJavaScriptが書けない: JavaScriptで「背景色を変える」という命令を出すとき、CSSのプロパティ名(backgroundColorなど)を知らないと、プログラムが書けません。
- 無駄(むだ)なコードが減る: 簡単なデザインの変化(マウスを乗せたときに色を変えるなど)は、CSSだけで作れます。CSSでできることを知っていれば、JavaScriptのコードを短く、シンプルに保つことができます。
- エラーを減らせる: CSSの仕組みを理解していれば、JavaScriptでデザインを操作したときに「なぜか動かない」というミスを防ぐことができます。
ここをクリックしてみましょう。
これから、このHTMLをCSSを使って、デザインを変更してゆきます。
まず、デザインの基本である「文字のスタイル」について学びましょう。
I. 文字のスタイル(文字のデザインを変える)
Webサイトにおいて、文字は情報を伝えるための最も大切な要素です。文字の「読みやすさ」は、ユーザーの体験(UX “User eXperience“のこと)に大きな影響を与えます。
基本の3つのプロパティ
まずは、よく使われる以下の3つの命令(プロパティ)を覚えましょう。
- font-size: 文字の大きさ。
- color: 文字の色。
- text-align: 文字の並べ方。左(left)、真ん中(center)、右(right)のどこに揃(そろ)えるかを決めます。
CSSの書き方の基本
CSSは、「どの場所に(セレクタ)」「何の項目を(プロパティ)」「どう変えるか(値)」というルールで書きます。
/* h1タグ(見出し)のデザインを変える例(れい) */
h1 {
font-size: 24px; /* 大きさを24ピクセルにする */
color: blue; /* 色を青にする */
text-align: center; /* 真ん中(まんなか)に並べる */
}
ここをクリックしてみましょう。
セレクタ
セレクタ はウェブページを分解して、その一部を取り出すときに、必要な部分を探すヒントとして使う、名前や特徴です。「タグ セレクタ」「クラス セレクタ」などがあります。
Important
セレクタ はJavaScriptでも、とても大事です。JavaScriptを書くときは、仕事をしてもらうオブジェクトを指定しなければなりません。そのとき、この セレクタ を利用するのです。
II. タグのスタイル(HTML要素に直接命令する)
「タグ セレクタ」とは、<h1>や<p>、<table>といったHTMLのタグ名に対して、スタイルを適用する方法です。ページ全体のデザインを一度に整えるのにとても便利です。
テーブル(表)のスタイル例
「テーブル(表)」をきれいに見せるためのプロパティを比較(ひかく)してみましょう。
| プロパティ名 | 意味(いみ) | 具体的な例と効果 |
|---|---|---|
| border | 枠線(わくせん) | 1px solid black(1pxの太さの黒い実線) |
| padding | 内側の余白 | セルの中の文字と枠線の間のスペースを広げます。 |
| background-color | 背景の色 | 表の背景に色を塗ります。 |
Note
実線:途中で切れず、ずっと続いている線
border-collapse: collapse; は「魔法の言葉」
テーブルのデザインで最も重要なのが border-collapse: collapse; です。 通常、テーブルの枠線はセルごとに分かれていて、そのままでは「二重線」のように見えてしまいます。このプロパティを <table>タグ に適用すると、隣(となり)り合う2本の線を1本にまとめることができます。まさに 「2本の線を1本にする魔法の言葉」 です。これを使うだけで、見た目がスッキリとプロらしくなります。
/* テーブルのデザインを変える例(れい) */
table {
width: 100%;
border-collapse: collapse;
font-family: sans-serif;
}
th, td {
border: 1px solid #333;
}
th, td {
padding: 12px 15px;
}
th {
background-color: #4CAF50; /* ヘッダーは緑 */
color: white;
}
tr:nth-child(even) {
background-color: #f2f2f2;
}
Note
注意:border(枠線)は各セル(
<th>や<td>)に設定し、border-collapseは全体の親である<table>に設定するのが正しいルールです。
ここをクリックしてみましょう。
III. 特定の要素(クラス)のスタイル
「クラス(Class)」を使うと、特定のグループに名前をつけて、その名前を呼ぶことでスタイルを適用できます。同じデザインを何度も書かなくて済むため、コードの管理がとても楽になります。
タグの名前はあらかじめHTMLのルールで決まっていますが、クラスの名前はプログラマが自分で付けるもの です。
クラスを使うステップ
- HTMLで名前をつける:
<p class="highlight">のように書きます。 - CSSでデザインを決める:
.highlight { color: red; }のように、先頭にドットをつけて書きます。
クラス名のルール
- 名前の始まりには必ず .(ドット) をつけます(例:.main-title)。
- 名前は、そのグループが何であるかわかる 意味のある英語 を使います。
- 複数の単語を繋げる場合は、JavaScriptと同じ camelCase(キャメルケース) (例:.submitButton)を使うのがおすすめです。JSとCSSで名前の付け方を統一(とういつ)すると、ケアレスミス(不注意な間違い)を減らすことができます。
JavaScriptへの繋がり
JavaScriptには、getElementsByClassName() という「クラス名を使って要素を見つける」命令があります。CSSでクラスを使ってグループ化しておけば、後でJavaScriptからそのグループだけを一度に動かすことが非常に簡単になります。
/* highlightクラスのデザインを変える例(れい) */
.highlight { color: red; }
ここをクリックしてみましょう。
IV. 特定の状態のスタイル
ウェブページには「普段の状態」だけでなく、「マウスが乗ったとき」のような「特別な状態」があります。この特別な状態を 疑似(ぎじ)クラス と呼びます。
代表的な疑似クラス::hover
最もよく使われるのが :hover(ホバー)です。これは「要素の上にマウスカーソルが乗ったとき」の状態を指します。
- CSSの :hover: マウスが乗ったときに、色をサッと変えることができます。
- JavaScriptの onmouseover / onmouseout: マウスが乗ったとき(over)と離れたとき(out)に、より複雑(ふくざつ)な動き(計算や画面の切り替え)をさせるときに使います。
使い分けの指針(ししん): 「ボタンの色を少し明るくする」といった見た目の変更だけなら CSS を使い、「ボタンに乗ったらデータを保存(ほぞん)する」といった機能の追加は JavaScript を使いましょう。
a:link,
a:visited {
color: rebeccapurple;
font-weight: bold;
}
a:hover {
color: hotpink;
}
ここをクリックしてみましょう。
V. JavaScriptからCSSを操作する重要ルール
JavaScriptを使ってデザインを書き換えるとき、CSSのプロパティ名の書き方が少し変わるという「重要なルール」があります。
キャメルケースへの変換(へんかん)
CSSでハイフン(-)を使っていた名前は、JavaScriptではハイフンを消して、次の文字を大文字にする 「キャメルケース」 に書き換えます。
| CSSの書き方 | JavaScriptでの書き方 | 意味 |
|---|---|---|
| font-size | fontSize | 文字の大きさ |
| background-color | backgroundColor | 背景の色 |
| border-radius | borderRadius | 角の丸み(かどのまるみ) |
JavaScriptでの書き換え構造:「道のり」で考える
JavaScriptからCSSを操作するときは、次のような構造で命令を出します。
// ID名が "title" の要素の色を赤に変える
document.getElementById("title").style.color = "red";
これを、目的地(もくてきち)までの 「道のり(みちのり)」 として分解(ぶんかい)してみましょう。
- document:このウェブページという「大きな書類」の中から、
- .getElementById(“title”):IDが “title” の「場所」を見つけて、
- .style:「デザイン(スタイル)」の担当者に、
- .color = “red”:「文字の色」を「赤」に変えるように命令する。
このように、ドット(.)で繋ぐことで、操作したい場所へ順番にたどり着くことができます。
【参考】この「道のり」を英語を使って「パス(path)」と呼ぶことがあります。
VI. CSS基礎のまとめ
- 文字スタイル: font-size や color で読みやすくする。
- タグスタイル: タグに直接命令し、border(1px solid black)などで整える。
- クラス: 名前をつけてグループ化し、JavaScriptからも操作しやすくする。
- 疑似(ぎじ)クラス: :hover でユーザーの動きに反応させる。
HTMLをしっかり覚(おぼ)えることが、JavaScriptをマスターするための近道(ちかみち)です。また、CSSで自分の思い通りのデザインが作れるようになると、JavaScriptの学習はもっと楽しくなります。まずは 「自分の書いたコードで画面が変わる楽しさ」 を大切にしてください。