CSS疑似要素(::beforeや::after)のcontent内で改行したり半角スペースを複数入力する方法

疑似要素を使うとタグの数をかなり減らせますし、CSSのみでツールチップの実装もできます。
ただ、疑似要素のcontent内では、普通に<br>タグでは改行できません。
今回は疑似要素内で改行する方法についてまとめておきます。
\Aを使用して改行する
まずは、改行したい位置で「\A」を入力します。
そのあとwhite-space: pre-wrap;を指定すると改行されます。
.tooltip::before {
content: '説明文を\A改行します';
white-space: pre-wrap;
}「\A」は改行を示すコードで、「pre-wrap」を指定するとHTML上の改行や半角スペースがブラウザでの表示にそのまま反映されるようになり、その影響で改行コードを認識して改行してくれるようになります。
「white-space: pre;」でも改行されますが、これだと「\A」を入力しないと折り返されなくなってしまい、CSSやブラウザ幅によっては表示が崩れてしまう可能性があります。
pre-wrapはpreと同様に改行コードを判定しつつ、横幅に応じて自動折り返しもしてくれます。
小文字でも問題なく使える
大文字で紹介されていることが多いですが「\a」のように小文字でも機能します。
ちなみにcontent内では「\r」や「\n」「\r\n」の改行コードは使えなく、あくまで「\a」しか反映されないので注意が必要です。
半角スペースを複数入力する
content内では2つ以上半角スペースを入力しても1つ分しか隙間が空きません。
これも「white-space: pre-wrap;」や「pre」を指定すると、半角スペースを入力した分だけ隙間が空くようになります。
「\00a0」で半角スペースを入力する
「white-space」の指定をしなくても「\00a0」を入力すると半角スペースとして認識されて複数入力してもちゃんと隙間が空くようになります。
.tooltip::before {
content: '説明文に\00a0\00a0\00a0半角スペースを複数入力します';
}ちなみに英語を入力しようとすると、コードのすぐあとにアルファベットが続く影響で表示がおかしくなってしまうので、コードのあとにスペースを入れて区切りをつけるようにします。
.tooltip::before {
content: 'tooltip\00a0\00a0\00a0 text';
}
JavaScriptのforEach内で「continue」や「break」のような動作をさせる方法
SourceTreeで環境設定の「カスタムアクション」「アップデート」「高度な設定」が選択できない
コーディングで「スペース」と「タブ」のどちらを使えばいいのか?
TwitterとFacebook用のOGP設定方法と表示確認方法
Sassのマップ機能を使った変数の管理方法
MacでCLIツールをインストールするときに行うターミナルでの「パスを通す」とは一体なにか?
HTTP/2が設定されているはずなのに、ブラウザ上でHTTP/1.1になってしまう場合はセキュリティソフトを確認
Google Chromeでinput要素の補完機能を使うと背景に色がついてしまう問題
アクセス解析ツールの定番!!Googleアナリティクスの登録方法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)
macOSのコマンドパレット比較!SpotlightとAlfred、Raycastどれを使えばいい?
1つのノートアプリにすべて集約するのをやめた理由|2025年時点のノートアプリの使い分け
Notionログイン時の「マジックリンク」「ログインコード」をやめて普通のパスワードを使う
AlfredでNotion内の検索ができるようになるワークフロー「Notion Search」
Gitで1行しか変更していないはずのに全行変更した判定になってしまう