Little Strange Software

スマホアプリの開発を行う LittleStrangeSoftware のブログです。

【CSS】border(枠線)のグラデーション

 どうも!LSSです!!

 CSSでborderをグラデーション色付け、なんとなく分かりました^^

 

 

成功例

サンプル

てすと

 

コード

<div style="border: 15px solid; border-image: linear-gradient(135deg, red,blue); border-image-slice: 1;">てすと</div>

 

 必要最小限の指定は↑こんな感じです。

 

 

失敗例

サンプル

てすと

 

コード

<div style="border: 15px solid; border-image-slice: 1; border-image: linear-gradient(135deg, red,blue);">てすと</div>

 

失敗する要因

 <div style="border: 15px solid; border-image-slice: 1; border-image: linear-gradient(135deg, red,blue);">てすと</div>

 

border-image-slice: 1; を、border-image: linear-gradient(135deg, red,blue);より前に書くと失敗します^^;
とんだ落とし穴でしたねwww

 

 

コード解説

border: 15px solid;

 border(枠線)の太さを15px、線の種類はsolid(実線)としています。

solidの部分の他に使えるものとして、
dotted dashed double groove ridge inset outset

などがありますが、このグラデの場合はどれを選んでも変化しないようです^^;

 

border-image: linear-gradient(135deg, red,blue);

直線グラデーションについた書いた記事の時の、background-image:border-image:に変えただけで、あとは全く同じ書き方です。

この例だと、135deg(右下方向に向かうグラデ)、赤から青へ、という指定です。

 

border-image-slice: 1;

かなりの曲者でした^^;

border-image-sliceについては、
https://developer.mozilla.org/ja/docs/Web/CSS/border-image-slice
に解説があります。

…とりあえず、グラデとして使用する分には、値は1で良さそうです。 

 

 

作成例

サンプル

きんきらきんのきーん♪

 

コード

<div style="width: 300px; height: 300px; padding: 1em; border: 15px solid; border-image: linear-gradient(150deg, black,brown,yellow,white,yellow,brown,black); border-image-slice: 1;">きんきらきんのきーん♪</div>

 

やってみて気づいたんですが

borderをグラデにした時って、border-radius(角丸)が効かないようです^^;

う~ん、残念!

 

 

border-image-sliceがとても難解でした^^;

 

が、「border-imageは画像ファイルを扱う事もでき(というかそっちがメイン用途?)、画像ファイルとして考えるとなんとなく理解できた」気がしますw

 

うまく使うと、「手描き風の枠線」「すごく凝ったデザインの枠線」を、元画像を用意する事で実現できそうです。

 

 

 

 

ってなとこで、今回はこのへんで!

次回もまた、よろしくお願いします^^