CSSで要素にグラデーションの枠線を付ける方法(角丸にする方法も紹介)

CSSで要素にグラデーションの枠線を付ける方法(角丸にする方法も紹介)

CSSで要素にグラデーションの枠線を付ける方法(角丸にする方法も紹介)

CSSでグラデーションの枠線を付ける方法をご紹介いたします。

角丸の場合は少し工夫が必要なので、角丸の要素にグラデーションの枠線を付ける方法も後述します。

CSSで要素にグラデーションの枠線を付ける方法

まずHTMLは下記のようにします。

<a href="" class="button-gradient">グラデーションボタン</a>

CSSは下記のようにします。

.button-gradient {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 300px;
  height: 60px;
  text-decoration: none;
  background-color: #fff;
  color: #333;
  border-style: solid;
  border-width: 4px;
  border-image: linear-gradient(to right, #a18cd1, #fbc2eb);
  border-image-slice: 1;
}

border-styleとborder-widthは通常の枠線と同じように指定し、border-imageでグラデーションの値を指定します。仕上げに「border-image-slice:1;」を追加したら完成です。下記のようなボタンができます。

角丸の要素でグラデーションの枠線を入れたい場合

上述したCSSにborder-radiusを指定しても角丸にはなってくれません。角丸にしたい場合は、まずHTML側では下記のようにspanを入れ子にしてあげます。

<a href="" class="button-gradient-radius"><span>グラデーションボタン</span></a>

CSSは下記のように指定します。

.button-gradient-radius {
  display: block;
  width: 300px;
  height: 60px;
  text-decoration: none;
  color: #333;
  background: linear-gradient(to right, #a18cd1, #fbc2eb);
  padding: 4px;
  border-radius: 8px;
}

.button-gradient-radius span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  background-color: #fff;
  border-radius: 6px;
}

親要素の背景にグラデーションを指定し、border-radiusで角丸にしたうえでpaddingを入れます。

続いて、spanにも背景色(今回は#fff)とborder-radiusを入れて重ねることで、親要素のpadding分のグラデーションが見えるという仕組みです。paddingがborder-widthの役割を担っているわけですね。

下記のようなボタンの出来上がりです。

あとがき

角丸の時は少々面倒ですが、仕組みがわかってしまえば難しくはないですね。

グラデーションの枠線を入れたい時は、ぜひ参考にしていただければと思います。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です