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で使えますが、将来に期待レベルですね。

MacでCLIツールをインストールするときに行うターミナルでの「パスを通す」とは一体なにか?
CSSやJavaScriptでスクロールバーの横幅を取得する方法
WordPressのプラグインはどれを入れたら良い?とりあえず最初に導入をオススメするプラグイン一覧
EJSのincludeで別ファイルを読み込むときの画像パスを指定する方法
JavaScriptで特定のOSやブラウザの判定を行う方法
1Passwordの開発者向け機能(SSH Agent / Environments / 1Password CLI / Developer Watchtower)
webpackでTop-Level Awaitを使用して、一番上位でもawaitを使えるようにする方法
goenvを使って、MacにGo言語をインストールする
Android実機で表示しているサイトを、Chrome開発者ツールで開いて検証する方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
使いやすくてキレイなmacOSのRSSリーダー「Reeder 3」
Hazelを使って、最近使用していないアプリケーションやフォルダにラベルを貼って可視化する
ATOKのマンスリーレポートで自分の入力した文字数や打ち間違いの傾向を確認する
Googleの「.new」ドメインを徹底的に活用する
ウェブサイトを作る上での基本「Macの画像圧縮方法」のまとめ
Ulysses編集画面の画像プレビューが小さすぎる場合の対処法
「epel-release」インストール後にyum installで「Cannot retrieve metalink for repository」と表示される場合の対処法
面倒なことを解消するアプリの細かい設定 #1日1Tips – 2019年11月
.DS_Storeなどの不要なメタデータファイルを自動で削除する「BlueHarvest」
WordPressの自動バックグラウンド更新を無効にする方法とその注意点