CSS3擬似クラスの中の擬似クラス
あまり解説されている記事がなかったのでメモ
CSS3で新たに追加された要素「:first-letter」で雑誌風に先頭文字を装飾(ドロップキャップ)する
p:first-letter { font-size: 32px; font-weight: bold; line-height: 24px; padding: 10px; background-color: greenyellow; float: left; }
これで装飾することは出来たが記事の中でp要素が一つで終わる事がまずないのでこのままだとpタグごとに先頭の文字が装飾されてしまう。
解決策として擬似クラスの中の擬似クラスを指定してみる
p:first-child:first-letter { font-size: 32px; font-weight: bold; line-height: 24px; padding: 10px; background-color: greenyellow; float: left; }
一応現状の最新版のchrome,Firefox,safari,IEで問題なく表示される。これで記事本文の最初のp要素の最初の文字にだけスタイルを指定できる。「nth-child(n)」でも可能なのでp要素の中にspanを多用せずにスタイルを適応できるので「:nth-child(n):before」とかある程度使い道がありそう。
first-childはCSS2でもあった要素なので古いIEでも問題なく表示されるが、nth-childを使うとIE9以前のバージョンは表示不可なので無難にjQueryで実装するべきかも。