明智的做法是使用渐变边框,特别是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 技巧的其他一些技术,或使用图像。