デザインを弄るのが好きな人で、なおかつ無料ブログサービスを使っている人は必ず思うハズです。
「そこにかわいい画像を置きたい…」「そこに好きな文字を書けたら…」
そんな悩みを解決するのが擬似要素 before/after です。
擬似要素は、HTMLを汚さずに、画像はもちろんテキストも追加できます。
擬似要素 before / after を使って画像をアイコン化して表示する
まずデベロッパーツールで対象に使われているセレクタを調べます。
そのセレクタにbefore/afterを使い、場所を指定します。
例えば、beforeを使うとサイドバーのH3見出しの文章の前に画像を表示することが出来ます。
今この記事を開いてる状態でサイドバーを見てください。この記事を開いている時だけサイドバーの見出しに擬似要素 before を使っているので、文章左側にWordPressのロゴが表示されています。
.widget-sidebar-title::before {
content: "";
display: inline-block;
width: 25px;
height: 25px;
background-image: url(image.jpg);
background-size: contain;
background-repeat: no-repeat;
margin-right: 5px;
vertical-align: -15%;
}
上記は実際に設置しているCSSです。
まず、セレクタの後に擬似要素の before/after どちらかを付けます。
セレクタにプロパティcontent: url(“image.jpg”); を付けると画像の表示は出来ますが、アップロードした画像は width/height でサイズを変えられません。
画像サイズを変えるには background-image: url(“image.jpg”) を使います。しかし、元の画像の余白をきっちりと切り取ってください。位置調整が楽になります。
display: inline-block;
width: 〇〇px; /* サイズ調整 */
height: 〇〇px; /* サイズ調整 */
background-image: url(“image.jpg”);
background-size: contain;
background-repeat: no-repeat; /* 画像一つを表示 */
margin-right: 〇px; /* 画像から文字の間に余白 */
vertical-align: 〇〇%;
これは値を増やすと画像が上に移動します。値にマイナス(-)を付けてあげると下に移動します。
キーワード指定もできます。ただし、キーワード指定は「ざっくり・だいたい」の場合のあるので数値のよる調整が良いと思います。
キーワード指定の例:vertical-align: middle;
これが最も使いますが、それでも今回は微妙なズレが生じました。
top:その行の一番高いところに合わせます。bottom:その行の一番低いところに合わせます。sub/super:化学式の添え字(H₂Oの2)や、注釈の肩文字(※¹)のように、少し下げたり上げたりします。
今回の設定では最もvertical-align: sub; が今の設定と同等でした。
画像サイズを小さくして表示してますが、画像の容量が小さくなった訳ではありません。あまり多用すると、Webサイトが重くなってしまうので、使用用途には気を配りましょう。
擬似要素 before / after を使って文字を追加して表示する
基本的に画像を使った時と同じように、まずはデベロッパーツールで対象に使われているセレクタを調べます。今回はセレクタにafterを使い、場所を指定します。
サイドバーにあるプロフィールの一部を切り取って下に例として設置しました。
名前「ミコト」の下の文字が::afterを使って表示した文字です。
ミコトホド管理人のミコトです。ゲームが好きなアマチュアブロガーです。一言二言では伝えきれないので三言程でミコトホドです。
実際に書かれているCSSです。
.myname02::after {
content: "~ようこそ私のWebサイトへ~\A いつでも遊びに来てください!";
display: block;
font-size: 12px;
color: #43577a;
margin-top: 5px;
font-weight: normal;
text-align: center;
white-space: pre-wrap; /* 改行を有効にする必須設定 */
}
今回は文字だけを使うのでcontent: “文字” を使います。
対象の文字の下に表示したいので、ブロック要素化をする為にdisplay: blockを使います。
擬似要素は文字のすぐ後ろに並ぼうとします。しかし、display: blockを使う事で、本来のセレクタ(親要素:ここでは.myname02)とのブロックを変える事で、強制的に次の行へ押し下げます。
親要素がテキストに対して位置を指定していると、それを継承します。実際には念のためにtext-align: centerを使ってますが、本来は必要ありません。
content: “表示する文字”;
display: block; /* 次の行に下げるなら */
font-size: 〇〇px;
color: #000000;
margin-top: 〇px;
font-weight: normal; /* 太さは好みで */
text-align: center; /* 親要素と位置を変えるなら必要 */
テキストに\Aを入れることで改行する
\A_(バックスラッシュA半角スペース)
これが content のテキスト内で改行の役割をします。しかし、これだけでは改行として働いてくれません。
white-space: pre-wrap;
テキスト内の \A を改行として働かせるにはこのプロパティが必要です。\A を使うには、セットで使ってください。
使いこなせばカスタマイズの幅が一気に広がる
表現の幅が広がりますし、限られた機能の殻を破るために使って欲しいお勧めのCSSです。
Webサイトの彩りに是非とも活用してください。
補足: バックスラッシュは、日本語キーボードでは円マーク「¥」として表示されますが、プログラム上の役割(改行コードなど)は同じです。半角の「¥」をそのまま使っても問題ありません。


コメント