第13章
HTMLからCSS・JavaScriptへつなぐ — link・script・class・data属性
約4分
HTMLは単体でもページを作れますが、見た目を整えるにはCSS、操作に応じた動きを付けるにはJavaScriptを組み合わせます。この章では、HTMLから次の学習へ進む接続点を整理します。
CSSを読み込む
CSSファイルは head 内で link 要素を使って読み込みます。
<link rel="stylesheet" href="/styles.css">html
構文: <link rel="stylesheet" href="CSSファイルのURL">
| 属性 | 説明 |
|---|---|
rel | 現在の文書との関係。CSSなら stylesheet |
href | 読み込むCSSファイル |
戻り値: HTML要素なので戻り値はありません。ブラウザがCSSを読み込み、HTMLにスタイルを適用します。
CSSそのものはCSS入門で詳しく学べます。
JavaScriptを読み込む
JavaScriptは script 要素で読み込みます。
<script src="/main.js" defer></script>html
| 属性 | 説明 |
|---|---|
src | 読み込むJavaScriptファイル |
defer | HTML解析後に実行する |
type="module" | ES Modulesとして読み込む |
<script type="module" src="/main.js"></script>html
DOM操作はJavaScriptのDOM操作で扱っています。
class、id、data-*
| 属性 | 主な用途 | 例 |
|---|---|---|
class | CSSのスタイル、分類 | class="button primary" |
id | ページ内で一意な識別子 | id="contact" |
data-* | JavaScript用の独自データ | data-user-id="42" |
<button class="button" data-action="open-menu" type="button">
メニューを開く
</button>html
class、特定位置や一意の対象には id、JavaScriptに渡す独自情報には data-* を使う、と分けると整理しやすいです。
ReactやJSXにつながるHTML
ReactではJSXを書きます。JSXはHTMLそのものではありませんが、HTMLの知識がほぼそのまま土台になります。
function Profile() {
return (
<article>
<h1>プロフィール</h1>
<p>HTMLの構造をReactコンポーネントで表現します。</p>
</article>
);
}jsx
ただし、JSXでは class ではなく className、for ではなく htmlFor を使うなど、一部の属性名が変わります。詳しくはReactのJSXとコンポーネントで扱っています。
よくあるミス
| ミス | 問題 | 修正 |
|---|---|---|
CSSを script で読む | CSSとして適用されない | link rel="stylesheet" |
JSを head で同期実行 | DOM取得が失敗することがある | defer や type="module" |
id をCSS目的で大量に使う | 再利用しにくい | class を使う |
何でも data-* に入れる | HTMLが状態管理の置き場になる | 必要な識別情報だけにする |
参考リンク
次章では、HTMLだけで小さなプロフィールページを作るハンズオンに進みます。
HTMLクイズに挑戦するlink、script、class、id、data属性の基本をクイズで確認しよう
