【发布时间】:2019-05-13 13:20:47
【问题描述】:
我有一张使用clip-path 的带有剪角渐变的卡片图片:
.card {
width: 200px;
height: 200px;
background: linear-gradient(to bottom, blue, green);
clip-path: polygon(20px 0, 100% 0, 100% 100%, 0 100%, 0 20px);
}
<div class="card"></div>
无论卡片大小如何,剪裁角都必须具有固定大小,因此我使用像素来剪裁角。
但是clip-path 目前还没有最好的浏览器支持,所以我尝试将这个 HTML 和 CSS 转换为 SVG。
.container {
width: 200px;
height: 200px;
}
<div class="container">
<svg viewBox="0 0 100 100" clip-path="url(#myClip)">
<defs>
<linearGradient id="grad1" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:rgb(0,0,255);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(0,255,0);stop-opacity:1" />
</linearGradient>
</defs>
<polygon points="20,0 100,0 100,100 0,100 0,20" fill="url(#grad1)" />
</svg>
</div>
但问题是,无论卡片大小如何,我都无法使这个剪裁角具有固定大小。
【问题讨论】:
-
渐变是随机的还是定义的?
-
@TemaniAfif 如果我能得到可以处理任意渐变或图像的解决方案,那就太好了。即使它不是 SVG 解决方案,但适用于所有现代浏览器。
-
添加了通用解决方案
标签: css svg clipping clip-path