html - 如何使用 svg 创建梯形?
问题描述
我希望为我的网页绘制一个倒置的聚光灯。我会在这里添加一些有用的代码,但没有,我已经用尽了整个互联网来寻找任何有用的东西。我还在学习 HTML 和 CSS,所以在这些领域的任何建议都会很好。另外,我知道创建梯形的常用方法是使用“border-bottom/left/right”属性,但问题是我无法用渐变填充形成的形状。因此,有关如何创建这样的梯形的任何帮助:\_/
将非常有帮助。
解决方案
在没有 svg 的情况下创建梯形的一种方法是使用 CSS 剪辑路径,路径被定义为多边形。多边形的点可以设置为 % 值,因此可以使元素响应。
这个 CSS
.trapezium {
width: 30vmin;
height: 20vmin;
background-image: linear-gradient(red, orange, yellow, blue, green);
clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
}
给出了这个:
.trapezium {
width: 30vmin;
height: 20vmin;
background-image: linear-gradient(red, orange, yellow, blue, green);
clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
}
<div class="trapezium"></div>
如果它必须是 SVG 而不是通过纯 CSS/HTML 实现,您可以使用类似的技术。请参阅https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polygon,其中描述了如何使用多边形作为 SVG 路径。
推荐阅读
- scala - 如何覆盖 sbt 插件中的正确任务?
- c# - 从 C# 中的视图列表中多次添加项目
- python - 我可以在没有显示环境的情况下使用 tkinter
- maven - 使用单个 POM 的多项目 Maven
- celery - Django Celery Rate Limit 设置无法按预期工作
- unix - 文件共享读/写权限
- xamarin - 如何在 Xamarin 的 ImageView 中设置图像的旋转角度?
- javascript - 显示超链接(如果适用)
- sql - 共享条件下高效查询数据
- python - 为什么pd.DataFrame每一项的类型都是float,而pd.DataFrame的dtype是object?