
だいぶ以前に「border要素にグラデーションを施す方法」という記事を公開しましたが、それとほぼ同じテクニックで、「border:dashed;」や「border:dotted;」をグラデーション処理させる方法を考えてみました。
理論としては、親要素に「position:relative;」を指定して、疑似要素:beforeでボーダーを引き、さらに疑似要素:afterで背景色と同じグラデーション処理を施します。
具体的なコードは次のようになりますね。
.border-dashed {
padding:0;
margin:0;
position:relative;
}
.border-dashed:before, .border-dashed:after {
position:absolute;
left:0;
right:0;
bottom:0;
display:block;
content:'';
height:1px;
}
.border-dashed:before {
border-bottom:1px dashed #000;
}
.border-dashed:after {
background:-webkit-linear-gradient( left, white, rgba(255, 255, 255, 0));
background:linear-gradient( to right, white, rgba(255, 255, 255, 0));
}
HTML側では、ボーダー・グラデーションを実装したい要素に「class="border-dashed"」を指定すればOKです。
<p class="border-dashed">この要素にボーダーを引きます。</p>
下記URLにサンプルを用意しました。
SAMPLE : https://on-ze.com/demo/css3-border-dashed-gradient/
ぜひお試しください!