「はてなブログ」は、クリックひとつで目次を挿入してくれる便利な機能がありますよね!
↓↓これです。

でも、この目次って少し見にくくありませんか???
テーマにもよりますが…
デフォルトこんなの↓

そこで!はてなブログの目次をかっこよく&オシャレに&見やすくしたいっ!!
という方にカスタマイズのコードと解説を紹介します♪♪
はてなブログの目次をおしゃれにカスタマイズ
はてなブログの目次のカスタマイズのコードを紹介します♪
こんな感じの目次ができます↓↓
(詳しい解説付きなので、ご自身でカスタマイズもできます)
シンプル1

シンプル2(ボーダーのみ)

カワイイ系♡

ステッチ風★

コードに関しては、次の章で詳しい解説をしていますので、参考にご自身で調節してみてくださいね。
テーマによっては、元々の設定などがあるのでズレてしまったりする場合もあります。
その際は、解説を元に数字などをいじってみてくださいね(^-^)
CSSコードをコピペする場所
CSSコードをコピーする場所は
デザイン→カスタマイズ→{}デザインCSS

※注意※
元から書いてあるコードを消してはいけません!!
書いてあるコードの一番下に追加してくださいね。
シンプル1

CSSコード
.entry-content .table-of-contents{position:relative;display:inline-block;
border-top:40px solid #4682b4;
background-color:#f5f5f5;
border-radius:10px;padding-right:50px;}
.entry-content .table-of-contents::before {display:block;
font-family:"blogicon";content:"\f003";
color:white;
position:absolute;top:-35px;left:15px;}
.entry-content .table-of-contents::after{font-size:20px;
content:"CONTENTS";
color:white;
position:absolute;top:-35px;left: 40px;}
.table-of-contents li {
list-style-type:decimal;
font-size:1.2rem;
line-height:1.5;padding-bottom:.5rem;}
.table-of-contents ul{padding-top:1rem;padding-bottom:.5rem;}
.table-of-contents li ul li {
font-size:1rem;
list-style-type:disc;
line-height:1.5;padding-top:0;padding-bottom:0;}
.table-of-contents li a,
.table-of-contents li a:visited
{color:#454545;text-decoration:none;}
.table-of-contents li a:hover
{text-decoration:underline;}
.table-of-contents ul ul{display: none;}
body{font-family: 'PT Sans Caption',sans-serif;}
カワイイ系♡

*元になったコードを公開してくれていた方→ id:kimix さんですが、いつの間にかブログが非公開になってしまっていました。(私がCSSを勉強し始めたキッカケにもなっていたブログでした。また公開された場合はこちらに明記しますね!)
CSSコード
.entry-content .table-of-contents {
position: relative;display: inline-block;
font-size: 14px;
border: 1px dashed #fac;
color: #999;
background-color: #fff !important;
padding-left:30px;padding-right:30px;}
.table-of-contents:before {
content: "[ contents ]";
background-color: #f5f5f5;
position: relative;display: inline-block;
margin: 0 0 1rem 0;
padding: 0.2rem 1rem;
font-weight: bold;}
.table-of-contents li a,
.table-of-contents li a:visited {
color: #999 !important;
text-decoration: none;
border-bottom: 1px dotted #fac;}
.table-of-contents li a:hover {
color: #bac; }
.table-of-contents li{list-style-type:none;}
ul.table-of-contents li:before {
font-family: "blogicon";
content: "\f048";
position: relative;
left: -0.5rem;
font-size: 0.5rem;
color: #fac;
}
シンプル2(ボーダーのみ)

CSSコード
.entry-content .table-of-contents{position:relative;display:inline-block;
margin-top:40px;
border-top:5px double #DB4D6D;
border-bottom:5px double #DB4D6D;
background-color:#fff !important;
padding-top:20px;padding-right:50px;padding-left:30px;
border-left:none;border-right:none;}
.table-of-contents::before {display:block;
font-family:"blogicon";content:"\f003";
color:#DB4D6D;
position:absolute;top:-40px;left:5px;}
.table-of-contents::after{font-size:20px;
content:"CONTENTS";
color:#DB4D6D;
position:absolute;top:-40px;left: 40px;}
.table-of-contents li:before {
content: "▼";
position: relative;
letter-spacing: .5em;
font-size: 1rem;
color: #DB4D6D;}
.table-of-contents li {
list-style-type:none;
font-size:1.2rem;
line-height:1.5;padding-bottom:.5rem;}
.table-of-contents ul{padding-top:1rem;padding-bottom:.5rem;}
.table-of-contents li ul li {
font-size:1rem;
list-style-type:disc;
line-height:1.5;padding-top:0px;padding-bottom:0px;}
.table-of-contents li ul li:before{display:none;}
.table-of-contents>li:last-child {padding-bottom:0px;}
.table-of-contents li a,
.table-of-contents li a:visited {color:#454545;text-decoration:none;}
.table-of-contents li a:hover{text-decoration:underline;color:#DB4D6D;}
.table-of-contents ul ul{display: none;}
body{font-family: 'PT Sans Caption',sans-serif;}
ステッチ風

CSSコード
.entry-content .table-of-contents{
position:relative;display:inline-block;
border:2px dashed #cd853f;
background-color:#fff5ee;
border-radius:10px;padding-right:50px;padding-top:10px;
box-shadow: 0 0 0 8px #fff5ee;}
.entry-content .table-of-contents::before{font-size:1rem;
content:"[ contents ]";
color:#cd853f;
position:relative;}
.entry-content .table-of-contents>li:first-child {padding-top: 20px;}
.table-of-contents li::before{
font-family:"blogicon";content:"\f02d";
color:#cd853f;
position:relative;left:-10px;}
.table-of-contents li ul li::before{display:none;}
.table-of-contents li {list-style-type:none;font-size:1.2rem;line-height:1.5;padding-bottom:0.5rem;}
.table-of-contents ul{padding-top:1rem;padding-bottom:0.5rem;}
.table-of-contents li ul li {font-size:1rem;line-height:1.5;padding-top:0px;padding-bottom:0px;
list-style-type:disc;}
.table-of-contents li a,
.table-of-contents li a:visited {color:#454545;text-decoration:none;}
.table-of-contents li a:hover{text-decoration:underline;}
.table-of-contents ul ul{display: none;}
カスタマイズコードと解説
目次の内部のコード
まずは目次の内部のカスタマイズのコードとその解説です。
設定すると、こんな感じになります。
↓

特徴としては、
・大見出しに数字をつけた
・大見出しと中見出しの文字のサイズと配置を工夫
・小見出しを表示しない(表示する設定も説明あり↓)
などです。
(テーマ:パレットをお使いの方で下線が消えない場合の対処法を追記しました!)
カスタマイズCSSコード
.table-of-contents li {
list-style-type:decimal;
font-size:1.2rem;
line-height:1.5;padding-bottom:.5rem;}
.table-of-contents ul{padding-top:1rem;padding-bottom:.5rem;}
.table-of-contents li ul li {
font-size:1rem;
list-style-type:disc;
line-height:1.5;padding-top:0;padding-bottom:0;}
.table-of-contents li a,
.table-of-contents li a:visited
{color:#454545;text-decoration:none;}
.table-of-contents li a:hover
{text-decoration:underline;}
.table-of-contents ul ul{display: none;}
内部のCSSコード解説
簡単にコードの説明をしますので、ご自身で文字の大きさや色を変えたり好きなカスタマイズをしてみてくださいね(^-^)
大見出し(h3)のカスタマイズ
.table-of-contents li {
list-style-type:decimal;
font-size:1.2rem;
line-height:1.5;padding-bottom:.5rem;}
list-style-type:decimal;
list-style-type: decimal;
decimal; は前に数字を表示します。
disc →黒丸
circle →白丸
none →なし
font-size:1.2rem;
line-height:1.5;padding-bottom:.5rem;}
font-size: 1.2rem;
文字のサイズです。通常のサイズは「1rem」なので、1.2rem は1.2倍という意味です。
2倍の大きさにしたかったら「2rem」です。
中見出し(h4)のカスタマイズ
font-size:1rem;
list-style-type:disc;
line-height:1.5;padding-top:0;padding-bottom:0;}
小見出し(h5)のカスタマイズ
.table-of-contents ul ul{display: none;}
小見出しを目次に入れない場合のカスタマイズです。
小見出しも表示したい場合には、この部分を削除してください。
削除しても表示されない場合には、none の部分を block に変えてください。
文字の装飾などのカスタマイズ
.table-of-contents li a,
.table-of-contents li a:visited
{color:#454545;text-decoration:none;}
.table-of-contents li a:hover
{text-decoration:underline;}
もともと目次はすべて「リンク」になっているので、基本は「リンク文字」としての装飾がされています。(下線やブルーの色など)
ただ、すべてに下線やリンク装飾が付いていると見づらいので、色を変えて、下線を系しているのが、こちら
↓
.table-of-contents li a,
.table-of-contents li a:visited
{color:#454545;text-decoration:none;}
色→ color:#454545;
下線なし→ text-decoration:none; (下線を表示したい場合はこの部分を削除する)
マウスオーバーで下線を表示する
.table-of-contents li a:hover
{text-decoration:underline;}
font-family:"blogicon";content:"\f003";
パレットをお使いの方で下線が消えない場合の対処法
はてなブログのテーマ:Palette(パレット) をお使いの場合、元のCSSで下線のドットが表示されるように設定されています。
こんな感じ↓

この下線を消したい場合は以下のCSSを追加して下さい。
ul.table-of-contents li a,
ul.table-of-contents li a:visited {
border-bottom: none;}
シンプル1,2で目次の左側のアイコンに下線を消したい場合。
ul.table-of-contents::before {
border-bottom: 0px;}
目次の表示が変になる場合
Paletteの着せ替えコードで他のデザインにしている場合やテーマによっては、紹介したCSSコードを入れると元の目次と重なって表示されたり、表示が変になってしまうことがあります。
その場合は、下記のように .table-of-contents { の前に ul を付けると解消されると思います。
ul.table-of-contents {
※使っているテーマやデザインによっては、全部の.table-of-contents { の前にul をつける必要があるかもです…(すみません、お手数をおかけします)
シンプル2の場合
.entry-content ul.table-of-contents{position:relative;display:inline-block;
margin-top:40px;
border-top:5px double #DB4D6D;
border-bottom:5px double #DB4D6D;
background-color:#fff !important;
padding-top:20px;padding-right:50px;padding-left:30px;
border-left:none;border-right:none;}
ul.table-of-contents::before {display:block;
font-family:"blogicon";content:"\f003";
color:#DB4D6D;
position:absolute;top:-40px;left:5px;}
ul.table-of-contents::after{font-size:20px;
content:"CONTENTS";
color:#DB4D6D;
position:absolute;top:-40px;left: 40px;}
ul.table-of-contents li:before {
content: "▼";
position: relative;
letter-spacing: .5em;
font-size: 1rem;
color: #DB4D6D;}
ul.table-of-contents li {
list-style-type:none;
font-size:1.2rem;
line-height:1.5;padding-bottom:.5rem;}
ul.table-of-contents ul{padding-top:1rem;padding-bottom:.5rem;}
ul.table-of-contents li ul li {
font-size:1rem;
list-style-type:disc;
line-height:1.5;padding-top:0px;padding-bottom:0px;}
ul.table-of-contents li ul li:before{display:none;}
ul.table-of-contents>li:last-child {padding-bottom:0px;}
ul.table-of-contents li a,
ul.table-of-contents li a:visited {color:#454545;text-decoration:none;}
ul.table-of-contents li a:hover{text-decoration:underline;color:#DB4D6D;}
ul.table-of-contents ul ul{display: none;}
body{font-family: 'PT Sans Caption',sans-serif;}
ul.table-of-contents li a,
ul.table-of-contents li a:visited {
border-bottom: none;}
目次を開閉式にする方法(表示/非表示の切り替え)
目次を表示・非表示に切り替えるカスタマイズです。
コードが2種類あります。
①CSSだけで切り替える方法
②jQueryを使って切り替える方法
①CSSだけで切り替える方法は、HTMLに書き込む方法で記事によって切り替えを使うかどうか決められます。(いちいちHTMLを書き込まないといけない)
②jQueryを使う方法は、自動的に目次を開閉式にすることができます。
詳しくはそれぞれの記事を見てね♪
↓↓
はてなブログの目次をCSSだけで開閉式にする方法 コピペOK
はてなブログの目次を開閉式にする方法 - jQuery コピペOK
コードの公開についてのお願い
今回紹介したコードは自分で考えたものです。
・ご自身のサイトに組み込んで自由にお使い頂けます。
・もし、カスタマイズのやり方などで、記事の中でコードを紹介する場合には、参考ページとして、このページ(https://www.bambi.pro/)へのリンクを紹介してください。
(無断で何の紹介もなく掲載されているのを見つけると悲しくなってしまいますので、どうぞよろしくお願いします!)
ブログ運営やアフィリエイトにおすすめの記事★
月間20万PV越え!これまでに試したアクセスアップの方法
【収益公開中】はてなブログは稼げるのか?10ヶ月間の運営報告から考察
はてなブロガー必見!アドセンスよりアフィリエイトASPに登録すべき3つの理由
戦略的アフィリエイトのすすめ!雑記ブログを収益化して月々5万円稼ぐ方法