2015-12-18 66 views

回答

1

这不是不可能实现的CSS。您只需要查看该图像的不同层,然后使用background-image重新创建每个图层。该图像有三个不同的层。最底层是一个倾斜的线性渐变,从较暗的蓝色到较浅的颜色(从左下角到右上角)。第二个是圆形放射状渐变,通过在底层顶部叠加从白色到透明的渐变产生辉光,第三种是产生灰色阴影的另一径向渐变(椭圆)。通过创建图层并将它们添加到元素中,我们可以获得所需的输出。

形状的弯曲底部可以通过使用在X和Y轴上具有不同半径的border-radius来生成。

.shape { 
 
    position: relative; 
 
    height: 200px; 
 
    width: 100%; 
 
    overflow: hidden; 
 
} 
 
.shape:after { 
 
    position: absolute; 
 
    content: ''; 
 
    width: 110%; 
 
    height: 100%; 
 
    left: -5%; 
 
    border-radius: 0% 0% 150% 150%/0% 0% 60% 60%; 
 
    background: radial-gradient(ellipse at 50% 160%, rgba(127, 127, 127, 0.75), rgba(127, 127, 127, 0) 40%), radial-gradient(circle at 50% 100%, rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0) 40%), linear-gradient(45deg, rgb(43, 149, 241), rgb(136, 208, 249)); 
 
    background-size: 100% 40%, 100% 100%, 100% 100%; 
 
    background-position: 0% 100%, 0% 0%, 0% 0%; 
 
    background-repeat: no-repeat; 
 
} 
 
body { 
 
    margin: 0; 
 
    padding: 0; 
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script> 
 
<div class='shape'></div>

+0

太棒了。这对我很有帮助。我只有黑色阴影的问题..因为在底部中心有一个图像,阴影在它下面,它是不可见的。另外,有可能,图像上方的线是直线,因此图像不会脱离线?这里是一个截图:http://screencast.com/t/33LQaWwkZa0 –

+0

我已经在网站http://gotadaa.com/上解决了这个问题。还有更多东西被应用,比如

上的92vh以及头文件伪类的不同样式:before和:after。检查CSS,你会发现解决方案 –