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

Facebookでシェアした記事の画像反映ができていない時の修正方法
Visual Studio Codeで開始タグを修正すると自動で閉じタグも修正してくれる拡張機能「Auto Rename Tag」
既存プロジェクトにCompassが導入されている場合に備えて、最低限Sassのコンパイルだけでも行えるようにしておく
EmmetのWrap with Abbreviationで複数行のマークアップを効率的に行う
スマホやPCにプッシュ通知をしてくれる「Push7」をブログに追加する方法
Visual Studio Codeの設定を複数の端末間で同期する「Settings Sync」機能の使い方
WordPressで既に公開済みの記事の更新を、指定した日付に反映する方法「PublishPress Revisions」
WordPressの自動バックグラウンド更新を無効にする方法とその注意点
ウェブサイトをダークモードに対応するときに気をつけること
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Spreadsheetでチェックボックスを使う|作り方の基本から、チェックした数の取得や進捗率の表示まで
【前編】もうライティングで困らない!説得型ランディングページとアフィリエイター活用で売り上げアップ【CSS Nite in Kobe】
iPhoneでミュージック.appの音声ファイルを2倍速で再生する方法
goenvを使って、MacにGo言語をインストールする
Google Chromeで文字コードを変更するChrome拡張機能「Charset」
単語登録機能に日常でよく使うフレーズを登録して、文章を素早く入力する方法
iTerm2終了時に表示される確認ダイアログを非表示にする
Dropboxの「Macをバックアップ」機能でデスクトップや書類フォルダを同期する
Fantastical 2で予定の登録時に使えるキーワードまとめ
Sketchのレイヤー周りの基本操作|グループ化やマスク、オブジェクトのロックや表示切り替えなどのレイヤーでできること