ウェブエンジニア問題集
第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ファイル
deferHTML解析後に実行する
type="module"ES Modulesとして読み込む
<script type="module" src="/main.js"></script>
html

DOM操作はJavaScriptのDOM操作で扱っています。

classiddata-*

属性主な用途
classCSSのスタイル、分類class="button primary"
idページ内で一意な識別子id="contact"
data-*JavaScript用の独自データdata-user-id="42"
<button class="button" data-action="open-menu" type="button">
  メニューを開く
</button>
html
CSS用には 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 ではなく classNamefor ではなく htmlFor を使うなど、一部の属性名が変わります。詳しくはReactのJSXとコンポーネントで扱っています。

よくあるミス

ミス問題修正
CSSを script で読むCSSとして適用されないlink rel="stylesheet"
JSを head で同期実行DOM取得が失敗することがあるdefertype="module"
id をCSS目的で大量に使う再利用しにくいclass を使う
何でも data-* に入れるHTMLが状態管理の置き場になる必要な識別情報だけにする

参考リンク

次章では、HTMLだけで小さなプロフィールページを作るハンズオンに進みます。

HTMLクイズに挑戦するlink、script、class、id、data属性の基本をクイズで確認しよう