HTML・CSSでつくるおしゃれな目次のデザイン3選

ブログなどで記事内に設置することの多い「目次」。コンテンツの要約だけでなくページ内リンクとしての役割も持つなど、ユーザビリティをグッと向上させてくれる要素です。今回はそんな目次のHTML・CSSによるデザインをまとめました。開閉機能のON・OFFに対応しており、どれもコピペだけで取り入れることが可能となっています。

シルバー背景&枠線付き

シルバー背景&枠線付き

step1
デザインを調整する
  • 開閉機能
  • タイトルのアイコン
  • マーカーの種類

とてもシンプルな、由緒正しきデザインの目次です。aタグのスタイルに手を加えないことによって、各見出しがクリック可であることが直感的に伝わりやすくなっています。

step2
HTMLをコピペする
HTML
<div class="toc-001">
    <div>
        目次
    </div>
    <ol>
        <li><a href="#">見出し1</a></li>
        <li>
            <a href="#">見出し2</a>
            <ol>
                <li><a href="#">見出し2-1</a></li>
                <li><a href="#">見出し2-2</a></li>
            </ol>
        </li>
    </ol>
</div>
step3
CSSをコピペする
CSS
.toc-001 {
    margin-bottom: 30px;
    padding: 1em 1em 1em 2em;
    border: 1px solid #999;
    background-color: #f7f7f7;
}

.toc-001 div {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 5px 0;
}

.toc-001 ol {
    list-style-type: decimal;
    margin: 0;
    padding: 0 1.2em;
    overflow: hidden;
}

.toc-001 ol ol {
    margin-top: 5px;
}

.toc-001 li {
    padding: 5px 0;
}

.toc-001 a {
    color: #166c9d;
}
フラットデザイン

フラットデザイン

step1
デザインを調整する
  • 開閉機能
  • タイトルのアイコン
  • マーカーの種類
step2
HTMLをコピペする
HTML
<div class="toc-005">
    <div>
        目次
    </div>
    <ol>
        <li><a href="#">見出し1</a></li>
        <li>
            <a href="#">見出し2</a>
            <ol>
                <li><a href="#">見出し2-1</a></li>
                <li><a href="#">見出し2-2</a></li>
            </ol>
        </li>
    </ol>
</div>
step3
CSSをコピペする
CSS
.toc-005 {
    margin-bottom: 30px;
    border-radius: 3px;
    background-color: #f2f2f2;
}

.toc-005 div {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 10px 0;
    background-color: #2589d0;
    color: #fff;
    font-weight: 600;
    font-size: 1.1em;
}

.toc-005 div::before {
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-right: 5px;
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22%23fff%22%3E%3Cpath%20d%3D%22M3.8%2017.2h-3c-.5%200-.8.4-.8.8v3c0%20.4.3.8.8.8h3c.4%200%20.8-.3.8-.8v-3c-.1-.4-.4-.8-.8-.8zm0-15h-3c-.5%200-.8.4-.8.8v3c0%20.4.3.8.8.8h3c.4%200%20.8-.3.8-.8V3c-.1-.4-.4-.8-.8-.8zm0%207.6h-3c-.5%200-.8.3-.8.7v3c0%20.4.3.8.8.8h3c.4%200%20.8-.3.8-.8v-3c-.1-.4-.4-.7-.8-.7zM23.2%2018h-15c-.4%200-.8.3-.8.8v1.5c0%20.4.3.8.8.8h15c.4%200%20.8-.3.8-.8v-1.5c0-.5-.3-.8-.8-.8zm0-15h-15c-.4%200-.7.3-.7.8v1.5c0%20.4.3.7.7.7h15c.5%200%20.8-.3.8-.8V3.8c0-.5-.3-.8-.8-.8zm0%207.5h-15c-.4%200-.8.3-.8.8v1.5c0%20.4.3.8.8.8h15c.4%200%20.8-.3.8-.8v-1.5c0-.5-.3-.8-.8-.8z%22%2F%3E%3C%2Fsvg%3E');
    content: '';
}

.toc-005 ol {
    list-style-type: decimal;
    margin: 0;
    overflow: hidden;
}

.toc-005 > ol {
    padding: 1em 1em 1em 3em;
}

.toc-005 ol ol {
    margin-top: 5px;
    padding-left: 1.1em;
}

.toc-005 li {
    padding: 5px 0;
    font-weight: 600;
}

.toc-005 ol ol li {
    font-weight: 500;
    font-size: .9em;
}

.toc-005 a {
    color: #333;
    text-decoration: none;
}
フラットデザイン&枠線付き

フラットデザイン&枠線付き

step1
デザインを調整する
  • 開閉機能
  • タイトルのアイコン
  • マーカーの種類

タイトルの背景と枠線の色を統一した、可愛らしい目次です。ぜひご自身のサイトのテーマカラーを基調色として設定してみてください。

step2
HTMLをコピペする
HTML
<div class="toc-002">
    <div>
        目次
    </div>
    <ol>
        <li><a href="#">見出し1</a></li>
        <li>
            <a href="#">見出し2</a>
            <ol>
                <li><a href="#">見出し2-1</a></li>
                <li><a href="#">見出し2-2</a></li>
            </ol>
        </li>
    </ol>
</div>
step3
CSSをコピペする
CSS
.toc-002 {
    margin-bottom: 30px;
    border: 2px solid #2589d0;
    border-radius: 3px;
}

.toc-002 div {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 10px 0;
    background-color: #2589d0;
    color: #fff;
    font-weight: 600;
    font-size: 1.1em;
}

.toc-002 div::before {
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-right: 5px;
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22%23fff%22%3E%3Cpath%20d%3D%22M3.8%2017.2h-3c-.5%200-.8.4-.8.8v3c0%20.4.3.8.8.8h3c.4%200%20.8-.3.8-.8v-3c-.1-.4-.4-.8-.8-.8zm0-15h-3c-.5%200-.8.4-.8.8v3c0%20.4.3.8.8.8h3c.4%200%20.8-.3.8-.8V3c-.1-.4-.4-.8-.8-.8zm0%207.6h-3c-.5%200-.8.3-.8.7v3c0%20.4.3.8.8.8h3c.4%200%20.8-.3.8-.8v-3c-.1-.4-.4-.7-.8-.7zM23.2%2018h-15c-.4%200-.8.3-.8.8v1.5c0%20.4.3.8.8.8h15c.4%200%20.8-.3.8-.8v-1.5c0-.5-.3-.8-.8-.8zm0-15h-15c-.4%200-.7.3-.7.8v1.5c0%20.4.3.7.7.7h15c.5%200%20.8-.3.8-.8V3.8c0-.5-.3-.8-.8-.8zm0%207.5h-15c-.4%200-.8.3-.8.8v1.5c0%20.4.3.8.8.8h15c.4%200%20.8-.3.8-.8v-1.5c0-.5-.3-.8-.8-.8z%22%2F%3E%3C%2Fsvg%3E');
    content: '';
}

.toc-002 ol {
    list-style-type: decimal;
    margin: 0;
    overflow: hidden;
}

.toc-002 > ol {
    padding: 1em 1em 1em 3em;
}

.toc-002 ol ol {
    margin-top: 5px;
    padding-left: 1.1em;
}

.toc-002 li {
    padding: 5px 0;
    font-weight: 600;
}

.toc-002 ol ol li {
    font-weight: 500;
    font-size: .9em;
}

.toc-002 a {
    color: #333;
    text-decoration: none;
}