ブログ記事の見出しの装飾を、下線ボーダーのグラデーションのラインだけという、控え目な装飾のcssで設定しました。いままでテーマtwenty fifteenのデフォルトのまま、フォントサイズと太字の見出しのままにしていました。べつに見出しスタイル不要論者というわけでもないのですが、WP初心者の頃にやらかした次のような失敗などの理由から、デフォルトのままにしていたのです。
- h2、h3を指定したら、ブログのサブタイトル、ウィジェットのタイトルにまでスタイルが反映されて困った。
- いじればいじるほど酷くなる、デザイン的センスの欠如
このページの目次
記事本文の見出しh2、h3だけ要素を指定する
基本の基本の話かもしれませんが、記事本文の見出しだけを装飾したいワケです。初心者のころは、こういう所がわからなかったのです。要素名やクラス名はテーマによって変わってくると思いますので、Chromeブラウザーで調べたい箇所を右クリック「検証」で調べます。以下の例は、ここのサイトテーマtwenty fifteenの場合です。
h2 {*********;} h3 {*********;}
見出し2がh2、見出し3がh3なんだからと、初心者の頃に指定したのが上のコレです。これだと記事本文の見出し以外にも、サイドバーのウィジェットタイトル、サイトのサブタイトルまでスタイルが適用されてしまいます。
.entry-content h2 {************;} .entry-content h3 {************;}
本文部分のクラス名 entry-content を一緒に指定することで、本文中の見出しだけをスタイル指定できるようになります。
.single-post .entry-content h2 {*************;} .single-post .entry-content h3 {*************;}
投稿ページに限定して、固定ページは除きたい場合は、投稿ページのクラス名 single-post も一緒に指定すれば投稿ページだけを指定することが出来ます。 こんな需要あるかわかりませんが、私はコレでやっています。
BorderのグラデーションをCSSで
見出しのスタイルは、ものすごくシンプルなアンダーラインだけです。そのラインをCSSでグラデーションにしたのです。
/* 見出し */ .single-post .entry-content h2, .single-post .entry-content h3 { position: relative; padding-bottom: 6px; } .single-post .entry-content h2:before, .single-post .entry-content h3:before { content: ''; position: absolute; bottom: 0; left: 0; right: 0; width: 100%; margin: 0 auto; text-align: center; background-position: center; background-repeat: no-repeat; } .single-post .entry-content h2:before { height: 3px; background-image: -webkit-linear-gradient(left,gray,white 90%); background-image: linear-gradient(to right,gray,white 90%); } .single-post .entry-content h3:before { height: 2px; background-image: -webkit-linear-gradient(left,gold,white 70%); background-image: linear-gradient(to right,gold,white 70%); }
もちろん、私がこんな複雑なCSSをサクサクと作れるワケがありませんので、参考サイトの情報が元になっています。
変更点
ほぼ参考サイトそのままに、見出しのフォントサイズや左詰め、ボーダーなどはそのままにしているので、ボーダーも左から右へとグラデーションしていくように変えています。h2の見出しはカラーGrayの3pxを幅90%でグラデーション、h3はカラーGoldの2pxを幅70%でグラデーションしています。