Widely available YES。主要ブラウザで広く対応済み。本番利用を推奨。

概要

テキストノードや子要素が一切ない空の要素を選択する擬似クラスです。動的にコンテンツが読み込まれるコンテナや、APIからのデータが空の場合のスタイリングに有用です。ホワイトスペース(スペースや改行)も子ノードとして扱われるため、完全に空の要素のみにマッチします。

対応ブラウザ

デスクトップ

Chrome 1+
Edge 12+
Safari 3.1+
Firefox 1+

モバイル

Chrome Android 18+
Safari iOS 2+
Firefox Android 4+

基本構文

CSS
.container:empty {
  display: none;
}
.message:empty::before {
  content: "データがありません";
  color: #6b7280;
}

実務での使いどころ

  • 空状態のフォールバック表示

    APIからデータが返されない場合に、:emptyと::beforeを使って「結果がありません」などのプレースホルダーメッセージを表示します。

注意点

  • HTMLのホワイトスペース(改行やスペース)も子ノードとして扱われるため、テンプレートエンジンの出力に注意してください。

アクセシビリティ

  • ::beforeで挿入したコンテンツはスクリーンリーダーで読み上げられない場合があるため、重要なメッセージはaria-label等で補完してください。