:empty
:empty は CSS の擬似クラスで、子を持たない要素を表します。子とは要素のノードまたは文字列(ホワイトスペースを含む)です。コメント、処理指示、 CSS の content は要素が空であるかどうかの判断には影響しません。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 1 | 12 | 1 | 3.1 | 18 | 2 | |
matches whitespace 空白のある要素と一致します | | | | | | |
基本構文
CSS
.container:empty {
display: none;
}
.message:empty::before {
content: "No data";
color: #6b7280;
} ライブデモ
実務での使いどころ
-
空状態のフォールバック表示
APIからデータが返されない場合に、:emptyと::beforeを使って「結果がありません」などのプレースホルダーメッセージを表示します。
注意点
- HTMLのホワイトスペース(改行やスペース)も子ノードとして扱われるため、テンプレートエンジンの出力に注意してください。
アクセシビリティ
- ::beforeで挿入したコンテンツはスクリーンリーダーで読み上げられない場合があるため、重要なメッセージはaria-label等で補完してください。