The HTML <span> element is a generic inline container for phrasing content, commonly used as a hook for styling or scripting without adding semantic meaning.
<span> は、文章の一部を「意味を増やさずに」包むための汎用インライン要素です。テキストの一部だけ色を変える、アイコンと文字をまとめる、JSやCSSのフック(class/data-属性)を付ける、といった目的で使います。
<span> が「何をする/何をしない」か(汎用・インライン・意味を足さない)を説明できる<div> と使い分け(インライン/ブロック)を迷わず選べる<button>/<a> に寄せて事故を避けられる<span> の性質(汎用・インライン・セマンティクスなし)を正誤判定できる<span> って何?ざっくり言うと、<span> は「文章の一部をつまんで、目印を付けるための薄いラップ」です。レイアウトの箱ではなく、テキストの一部を狙って扱う場面で出番があります。
<strong>)や重要(<em>)のような意味は持たないclass / id / data-* を付けてCSS/JSで狙う<span> は、意味を持たない(セマンティクスを追加しない)汎用のインライン要素として、文章中の一部をグルーピングするために用意されています。
data-* を付け、クリックで説明を出すなど(振る舞いのフック)<span> の中には、基本的に文章の流れ(テキストと同列)に置ける内容を入れます。大きな区切り(段落やセクションなど)を入れる箱ではありません。
合言葉は NEKO-2026 です。
見た目はCSSで変えるだけで、HTMLの意味は増えません。
ステータス:公開中
NEW のような短い表示にも使えます。
HTML
<p>合言葉は <span class="demoSpanMark">NEKO-2026</span> です。</p>
<p>ステータス:<span class="demoSpanPill">公開中</span></p>
CSS
.demoSpanMark {
background: rgba(255, 230, 120, 0.6);
padding: 0.05em 0.25em;
border-radius: 0.25em;
}
.demoSpanPill {
display: inline-block;
padding: 0.15em 0.6em;
border-radius: 999px;
border: 1px solid rgba(120, 120, 120, 0.45);
}
まずは「狙いたい部分だけを <span> で包み、class を付ける」を型として覚えると速いです。
HTML
<p>
受付番号:
<span class="ticketId">A-1204</span>
</p>
CSS
.ticketId {
font-family: ui-monospace, Menlo, Monaco, Consolas, monospace;
font-weight: 700;
}
<div> と何が違う?(インライン vs ブロック)<span><div><span> は見た目を変えやすいため、つい「ボタンっぽい見た目」にしてクリック処理を付けたくなりますが、基本は <button> / <a> を使います。
<span> をボタン扱い保存(見た目はボタンでも、キーボード操作などで事故りやすい)
<button> を使う(標準でフォーカス・Enter/Space・A11yが整う)
<span> は汎用要素なので、基本は グローバル属性(id/class/lang/title/data-* など)を中心に使います。
HTML
<p>
<span lang="en" title="HyperText Markup Language">HTML</span> を学ぶ
(<span data-level="beginner">初級</span>)
</p>
<span> は汎用のインライン要素である<span> はブロック要素の代わりに使ってよい<span> に意味はないので、強調したい語句にも使うべき<em>/<strong> 等が先)<div><strong><em><mark><span> をたくさん使うのは悪い?<span> で済ませる」と、後から読む人が意図を読み取りにくくなります。まず意味のある要素を検討し、それでも当てはまらない部分に限定して使うのが安全です。<span> をクリックできるようにしてもいい?<button> / <a> を使います。どうしても <span> を使う場合は、キーボード操作やARIAを含めた設計が必要になります。<span> の中に <div> を入れてもいい?<span> は文章の流れに置く想定なので、大きなブロックの箱は中に入れない方が安全です。