CSS疑似要素の「:empty」でタグの中身が空のときのスタイルを設定する

ブログの記事の一覧表示や、ウェブサービスを作るときは中身が何もない場合を作る必要があります。
PHPなどの条件分岐で対応する方法もありますが、簡易的なものであれば、CSSの疑似要素の「:empty」や「:blank」を使えばすぐ実現できます。
:empty
:emptyはHTMLタグの中身が空の場合のスタイルを設定できる疑似要素です。
何もない場合のスタイルが付けられますし、::before、::afterの疑似要素と組み合わせれば、何もアイテムがない場合に文言を表示させられます。
See the Pen :emptyの使い方 by Masakazu Saito (@31mskz10) on CodePen.
上記のサンプルでは、要素の中身がない場合に「中のアイテムがありません」という文言が表示されますが、HTMLやJavaScriptを使わずCSSだけでこの文言を表示させています。
:emptyと:blankの違い
:emptyの他に:blank擬似クラスもあります。
どちらもHTMLタグの中身が空かどうか判定する擬似クラスですが、「スペースを判定するかどうか」の違いがあります。
| 擬似クラス | 内容 |
|---|---|
| :empty | スペースがあると表示されない |
| :blank | スペースがあっても表示される |
See the Pen :empty & :blank by Masakazu Saito (@31mskz10) on CodePen.
この違いを見ると、:blankの方が便利そうに感じますが、:blankはまだ草案レベルでブラウザに実装されていません。
Firefoxであれば:-moz-only-whitespaceで使えますが、将来に期待レベルですね。

Visual Studio Codeでファイル差分の比較を行う方法
Visual Studio Codeの「Debugger for Chrome」でJavaScriptのデバッグを行う
サーバーのアップロードファイルの最大容量の確認と変更方法
Visual Studio CodeからFTPソフトのTransmitを使用する拡張機能「Transmit」
CSSでclassがついていないタグにだけスタイルを当てる方法
iOS Safariでinputタグにフォーカスを合わせると、自動で画面が拡大してしまう原因と解決方法
SourceTreeで環境設定の「カスタムアクション」「アップデート」「高度な設定」が選択できない
Visual Studio Codeの設定を複数の端末間で同期する「Settings Sync」機能の使い方
Visual Studio Codeで正規表現にマッチするか確認できる拡張機能「Regex Previewer」
Visual Studio Codeで英単語のスペルチェックをしてくれる拡張機能「Code Spell Checker」
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Alfred 4のファイル検索時にプレビュー表示ができるPreviewsの設定項目まとめ
Path Finderの「Finderで開く」が機能しないので、Keyboard Maestroで代替用マクロを作成する
iPhoneでスクリーンショットを撮影するときにHEIC形式ではなくJPG形式で保存する方法
TwitterとFacebook用のOGP設定方法と表示確認方法
CodeAnywhereでターミナルに触る練習をする
Path Finder 10がリリース!Big Surに完全対応したり、AirDropが使えるように!
チャットサービス統合アプリのStationがChrome拡張機能になって登場!キーボードだけでよくアクセスするサイトへ移動できる
EmmetのWrap with Abbreviationで複数行のマークアップを効率的に行う
全角スペースを可視化してくれるVisual Studio Codeの拡張機能「zenkaku」