それを行うための賢い方法は、特にグラデーションの境界線border-image
を使用することです。ブラウザのサポートは完全ではありませんが、これは本質的な効果ではないため、少し優雅に機能を低下させても、全体的なパフォーマンスが向上することはありません。
ここに小さなデモがあります。
私はSASS(Compassを使用)を使用しました。これはCSSにコンパイルされ(縮小されます!)、ベンダープレフィックスを処理します。
div
border-width: 3px
+border-image(linear-gradient(top, rgba(0,0,0,0), black, black, rgba(0,0,0,0)) 1 100%)
ただし、マゾヒストの場合は、CSSを手動で実行できます。
div {
border-width: 3px;
-moz-border-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0), #000000, #000000, rgba(0, 0, 0, 0)) 1 100%;
-webkit-border-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(0, 0, 0, 0)), color-stop(33.33333%, #000000), color-stop(66.66667%, #000000), color-stop(100%, rgba(0, 0, 0, 0))) 1 100%;
-webkit-border-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0), #000000, #000000, rgba(0, 0, 0, 0)) 1 100%;
-o-border-image: -o-linear-gradient(top, rgba(0, 0, 0, 0), #000000, #000000, rgba(0, 0, 0, 0)) 1 100%;
border-image: linear-gradient(top, rgba(0, 0, 0, 0), #000000, #000000, rgba(0, 0, 0, 0)) 1 100%;}
それでもうまくいかない場合は、CSSトリックに関する他のテクニックをいくつか調べるか、画像を使用してください。