デザインレベルアップ

【HTML・CSS】見出しの左右両端に線を入れる方法

今回は「CSSを使ってテキストの左右に線を入れる方法」をご紹介します。

装飾として見た目はとてもシンプルですが、線の太さや長さを変えたりすると印象も大きく変わるので、覚えておくと良いでしょう。

横幅いっぱいに線を入れる方法

まずは下の画像のような両端の線が横幅いっぱいになるような装飾の作り方をご紹介します。

HTML

横に線を追加したいテキストにhead-borderというクラス名をつけました。このクラスをベースにCSSを設定していきます。

<h2 class="head-border">タイトル</h2>

CSS

CSSを書いていきます。ポイントはflexboxコンテナーのプロパティです。

.head-border {
    display: flex;
    align-items: center;
}

.head-border:before,
.head-border:after {
    content: "";
    height: 1px;
    flex-grow: 1;
    background-color: #666;
}

.head-border:before {
    margin-right: 1rem;
}

.head-border:after {
    margin-left: 1rem;
}

解説

.head-border

.head-border:擬似要素

両端に短い線を配置する方法

次にご紹介するのは「横幅いっぱい」ではなく、下の画像のように短い線を配置する方法です。

HTML

HTMLは先ほどと同じhead-borderというクラス名を使って、CSSを設定していきましょう。

※中央揃えにする場合には、divなどで囲ってtext-align:center;を適用してあげましょう。

<h2 class="head-border">タイトル</h2>

CSS

.head-border {
    position: relative;
    display: inline-block;
    padding: 0 55px;
}

.head-border:before,
.head-border:after {
    content: '';
    position: absolute;
    top: 50%;
    display: inline-block;
    width: 50px;
    height: 5px;
    background-color: #666;
}

.head-border:before {
    left: 0;
}

.head-border:after {
    right: 0;
}

解説

.head-border

.head-border:擬似要素

応用

グラデーションで端を薄くする

擬似要素の箇所に下のCSSを加えれば端に向かって薄くなるボーダーが作れます。

::beforeと::afterで数値が違うので注意しましょう。

/* ::before */
background: linear-gradient(-90deg, #666, transparent);
/* ::after */
background: linear-gradient(90deg, #666, transparent);
短い方でグラデーションかけるとダサい!笑
モバイルバージョンを終了