CSS Web制作

CSSでborder(線)をグラデーションにする方法【サンプル付き】

2023年3月25日

※ 当サイトではアフィリエイト広告を利用しています

borderってグラデーションに出来る?

枠線をちょっとおしゃれにしたい場合、グラデーションにするという方法があります。

コード自体は簡単なので、サンプルを使って解説していきます。

背景やボックス要素などをグラデーションにする方法は以下の記事を参照下さい。

あわせて読みたい
【コピペOK!】CSSグラデーションの作り方まとめ
CSSグラデーションの作り方まとめ【コピペOK!】

続きを見る

じゅんぺいブログは、Web制作コーディングWordPress制作)の技術記事を中心に、約500記事公開しています。ぜひ他の記事も参考にしてみてください!
完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適です。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇
(有料になっていたらすいません🙇‍♂️)

\ 完全無料 /

ZeroPlus Gate公式サイト

毎日先着制!

CSSでborder(線)をグラデーションにする方法

まずは、今回ご紹介するサンプル(デモ)の共通のHTMLCSSのコードを確認します。

HTMLの書き方はこちら。

<div class="box"></div>

CSSの書き方はこちら。

.box {
  border: 10px solid;
  height: 150px;
  margin-inline: auto;
  max-width: 600px;
  width: auto;
}

ここのポイントはborder: 10px solid;だけですが、線の太さを調整するくらいで、色はグラデーションで指定するので不要です。

 

左右にグラデーション

borderを左右にグラデーションにするコードはこちらです。

.box {
  border-image: linear-gradient(to right, #7f7fff, #7fff7f) 1;
}

これは、左から右に色を変化させています。

このような意味になります。

.box {
  border-image: linear-gradient(方向, 開始の色, 終了の色) 1;
}

そして最後の1はborder-imageのショートハンドで、個別に書く場合はこちらでも大丈夫です。

.box {
  border-image: linear-gradient(to right, #7f7fff, #7fff7f);
  border-image-slice: 1;
}

See the Pen
Untitled
by junpei (@junpei-sugiyama)
on CodePen.

border-imagerightleftにすれば色は逆になります。

 

上下にグラデーション

borderを上下にグラデーションにするコードはこちらです。

.box {
  border-image: linear-gradient(to bottom, #7f7fff, #7fff7f) 1;
}

これは上から下に色を変化させています。

See the Pen
borderでグラデーション(上下)
by junpei (@junpei-sugiyama)
on CodePen.

border-imagebottomtopにすれば色は逆になります。

 

3色でグラデーション

borderを3色でグラデーションするコードはこちらです。

.box {
  border-image: linear-gradient(to bottom, #7f7fff, #7fff7f, #ffbf7f) 1;
}

これは単純にカラーコードを1つ増やしただけですね。

もちろん3色以上も可能です。

See the Pen
borderでグラデーション(複数の色)
by junpei (@junpei-sugiyama)
on CodePen.

See the Pen
borderでグラデーション(縦に3色)
by junpei (@junpei-sugiyama)
on CodePen.

 

一部だけグラデーション

borderは、上下左右別々に書くことも出来ます。

例えば、左と下の線だけの場合はこちらです。

.box {
  border-bottom: 10px solid;
  border-left: 10px solid;
  border-image: linear-gradient(to right, #7f7fff, #7fff7f) 1;
}

See the Pen
borderでグラデーション(一部)
by junpei (@junpei-sugiyama)
on CodePen.

 

円形にグラデーション

円形グラデーションは、放射線状に内側から外側に向かっていくグラデーションです。

コードはこちらです。

.box {
  border: 30px solid;
  border-image: radial-gradient(#7f7fff, #7fff7f) 49%;
}

円形の場合はlinear-gradientではなく、radial-gradientを使います。

方向の指定はなく、後ろに0%より大きく50%より小さい数値で色の割合を調整します(50%以上だと線が消えます)

ここでは、最後の1でborder-image-sliceを書くと均等に色が広がらないので書いていません。

あとは、グラデーションが分かりやすいように線を太くしています。

See the Pen
borderで円形グラデーション
by junpei (@junpei-sugiyama)
on CodePen.

 

グラデーションで一周

最後は上下・左右・円形ではなく、ぐるっと一周するグラデーションです。

コードはこちらです。

.box {
  border-image: conic-gradient(#7f7fff, #7fff7f, #ffff7f, #ff7f7f, #ff7fff, #7f7fff) 1;
}

カラーコードが全部似ててややこしいですが、このようになります。

.box {
  border-image: conic-gradient(開始の色, 2番目の色, 3番目の色, ・・・, 開始の色) 1;
}

注意点は、最後に開始の色を書かないと、最初と最後の色のつなぎ目がグラデーションになりません。

See the Pen
borderでグラデーション(一周失敗)
by junpei (@junpei-sugiyama)
on CodePen.

開始の色を最初と最後に書けば、このようになります。

See the Pen
borderでグラデーション(一周)
by junpei (@junpei-sugiyama)
on CodePen.

まとめ

今回は、border(線)をグラデーションにする方法を解説してきました。

グラデーションにするといっても色んな種類があり、色をtransparentにすれば片方は透明にすることも可能です。

例えば、見出しの上下左右に線を引くデザインはよくありますが、CSSで線の両端や片側の線を徐々に透過させる方法もあります。

あわせて読みたい
CSSでborder(線)の両端を徐々に透過させる方法【サンプル付き】
CSSでborder(線)の両端を徐々に透過させる方法【サンプル付き】

続きを見る

以上になります。

この記事が役に立ったと思ったら、シェアボタンからX(旧Twitter)などにシェアすると、いいねされてフォロワーが増えたりすることがあるよ!

 

  • この記事を書いた人

じゅんぺい

37歳からWeb制作とブログ開始。Web制作歴5年目でコーディングとWordPressオリジナルテーマ制作が中心。これまで120件以上を納品。当ブログ月間最高15万PVで、370記事以上はWeb制作の技術記事。コンテンツ販売→累計売上1200万円&1500部超え。X(旧Twitter)フォロワー7200人以上。2024年3月からブログの経験を活かしてライターとしても活動を開始。

-CSS, Web制作
-