0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CSSでborderの色をグラデーションにした上で角を丸くしたい!

Last updated at Posted at 2025-01-29

通常borderをグラデーションにしたい場合はborder-image に linear-gradient() か radial-gradient() をつけることで実装できます。
しかし「borderをグラデーションにした上で角を丸めたい」となると一工夫必要になるので、紹介しようと思います。

まず普通にborderの色をグラデーションにする例。
この時、border-colorを指定しないとborder-imageも表示されないので、transparentでも何でも良いので指定します。
また、border-imageに対応していないブラウザで閲覧した時は代わりにborder-colorの色で表示されます。

この状態で角を丸めたいのでborder-radiusを指定します。

効きません。

そんな時はCSSの::before/::afterを使用します。

  1. backgroundが全面グラデーションになっている角丸のブロックを下に敷く
  2. 上から1よりborderの分だけ小さくしたブロックを被せる

以上がCSSだけでborderがグラデーション+角丸になっているブロックを作る方法になります。
端末によってはborder-imageが正しく表示されないことがあるみたいなので、角丸じゃなくてもこの方法で実装するのが安心です。

縦横のサイズが固定の時は画像にしてbackgroundに張り付けた方がもっと楽です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?