はてなブログのタイトル(ブログ名)のフォントカラーを先頭1文字だけ緑色にしようと考えて、少し迷ってしまったので備忘録です。今思えば全然大した事はないんですが、プログラムもCSSもコードを書いた経験が全てだなぁと感じた一件です。イメージ出来ないと調べる事も出来ないですしね。戒めの意味も込めて迷った過程から書いていきます。
span要素を使う
まず思いついたのがspan要素を使うことです。
<h1 id="title"> <a href="#"><span style="green">T</span>ASK NOTE</a> </h1>
しかし問題点として、はてなブログはHTMLを編集することが出来ません。とりあえず設定でブログ名にタグ付きで入力してみます。
予想通りタグがそのまま表示されてしまいました。どうやらエスケープされているようです。
jQueryでHTMLを書き換える
HTMLが編集できないならと次に試したのがjQueryでHTMLを書き換える方法です。
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> <script> $('#title>a').html('<span style="color:green;">T</span>ASK NOTE'); </script>
このコードをフッタのHTMLを記述できる所にいれます。するとうまく色が変わってくれました。
CSSの:first-letterを使う
しかし1文字色変えるだけでjQuery使うのもなと思い、CSSで何かあるんじゃないかと調べてみました(遅)
そうしたら:first-letter
という擬似要素があるじゃないですか...。結果この一文だけで済みましたとさ。
#title:first-letter { color: #00a518; }
ちなみに#title>a:first-letter
じゃなくて#title:first-letter
なのはブロックレベルの要素にしか効かないからです。a要素はインラインなので効きません。
参考:::first-letter (:first-letter) - CSS: カスケーディングスタイルシート | MDN