7.

HTML del要素 完全ガイド(取り消し線 / 削除済みコンテンツ / ins要素との対比 / cite/datetime属性)

編集
この記事の要点
  • <del>削除されたテキストを表す HTML 要素で、デフォルトで取り消し線が表示される
  • 対になる要素は <ins>(追加されたテキスト、下線で表示)
  • cite 属性で削除理由を説明するページ URLdatetime 属性で削除日時を指定できる
  • CSS の text-decoration:line-through とは意味が違う — 単なる装飾なら <s> や CSS、編集履歴なら <del> を使う
  • 価格訂正や記事の更新履歴を表現する際に SEO / アクセシビリティ的に正しい選択

del 要素とは

<del>(deleted)は削除されたテキストを表す HTML 要素です。HTML4 の頃から存在し、デフォルトのスタイルは取り消し線text-decoration: line-through)。意味的には「以前は載っていたが取り消された情報」を表現します。

基本構文

<p>定価 <del>1980円</del> 特価 980円</p>

<p>会議は <del>3月10日</del> <ins>3月15日</ins> に変更されました。</p>

属性

属性意味
cite削除理由を説明する URLcite="/changelog"
datetime削除日時(ISO 8601)datetime="2026-03-15T10:00"
<p>料金は <del cite="/news/price-update" datetime="2026-01-15">月額500円</del>
   <ins datetime="2026-01-15">月額780円</ins> に改定されました。</p>

<del> と <s> と <strike> の違い

要素意味用途現状
<del>編集により削除されたテキスト編集履歴・訂正HTML5 推奨
<s>もはや正確でない / 関連性のないテキスト無効化された情報(在庫切れ等)HTML5 推奨
<strike>取り消し線(装飾のみ)装飾HTML5 で廃止

意味の使い分け:

  • 編集で消えた(前の版にはあった)→ <del>
  • もう正しくない(在庫切れ、終了したキャンペーン)→ <s>
  • 単なる装飾 → CSS の text-decoration: line-through

ブロックレベルとインラインの両方で使える

<del>トランスペアレントコンテンツモデルのため、ブロック要素もインライン要素も子に持てます。段落全体を削除済みにすることも可能です。

<!-- インライン使用 -->
<p>料金は <del>500円</del> 780円</p>

<!-- ブロック使用 -->
<del>
  <p>この機能は廃止されました。</p>
  <p>代わりに新機能をお使いください。</p>
</del>

CSS でスタイル変更

/* デフォルトの取り消し線を消す */
del {
  text-decoration: none;
  color: #999;
}

/* 取り消し線の色を変える */
del {
  text-decoration: line-through #d00 2px;
}

/* ホバー時のみ取り消し線表示 */
del { text-decoration: none; }
del:hover { text-decoration: line-through; }

SEO とアクセシビリティ

スクリーンリーダーは多くの場合 <del>「削除:〜」のように読み上げます。一方、CSS の text-decoration: line-through だけだと読み上げは変化しません。意味的に削除を伝えたい場合は必ず <del> を使うべきです。

SEO 観点では、Google は <del> 内のテキストもインデックス対象とします。ただし更新後の情報<ins> 等で明示しておくと、検索ユーザーが現状を理解しやすくなります。

典型ユースケース

  • 価格訂正: <del>1980円</del> 980円
  • 記事の更新履歴: 「以前は誤って〜と記載していました」
  • ToDo リスト: 完了タスクに <del>
  • 差分表示: 旧版を <del>、新版を <ins>

FAQ

Q: 取り消し線だけ表示したい場合は?
A: 編集による削除でないなら <s> を使うか、装飾なら span style="text-decoration:line-through"<del>意味的に「削除」を表すので、安易な装飾用途には避けましょう。

Q: datetime 属性のフォーマットは?
A: ISO 8601 形式。日付のみなら 2026-03-15、時刻まで含めるなら 2026-03-15T10:30:00+09:00。タイムゾーンを明示するなら末尾に +09:00 または Z(UTC)。

Q: <del> と <ins> をネストできる?
A: 可能。例えば「以前は削除されていた追加文」を表すような複雑な編集履歴も表現できます。ただし、可読性の観点から多重ネストは避けるべきです。

Q: GitHub の差分表示のように使える?
A: 段落単位の差分は <del><ins> で表現できます。コードの行単位差分には <pre> 内で個別に色付けする方法が一般的です。

HTML5 仕様の参考

HTML5 で <del><ins> はカテゴリとしては「フローコンテンツ」と「フレージングコンテンツ」の両方になる珍しい要素です。これによりブロック要素を子に含めても OK段落の中に置いても OK という柔軟性を実現しています。仕様上は HTML4 から存在しますが、HTML5 で citedatetime 属性が標準として整理されました。

関連

  • ins 要素 — 追加されたテキスト
  • s 要素 — もはや正確でないテキスト
  • strike 要素 — HTML5 で廃止された取り消し線要素
  • blockquote 要素 — 引用ブロック(cite 属性が同様)
  • mark 要素 — ハイライト表示
編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. h1~h6要素
  2. p要素
  3. blockquote要素
  4. q要素
  5. cite要素
  6. ins要素
  7. del要素
  8. HTML em 要素(強調)の使い方と strong との違い
  9. br要素
  10. abbr要素
  11. dfn要素
  12. pre要素で整形済みテキストを表示する
  13. code要素
  14. samp要素
  15. kbd要素
  16. var要素
  17. bdo要素
  18. sup要素で上付き文字を表示する
  19. sub要素
  20. mark要素
  21. data要素
  22. time要素
  23. wbr要素
  24. bdi要素

最近更新/作成されたページ