如何将现有方形SVG图像通过设置圆角修改为圆形样式
方形SVG转圆形效果实现方案
你可以任选以下两种方案实现需求:
方案1:通过CSS设置(适合SVG内嵌在HTML页面使用的场景)
你的SVG本身宽高均为1000pt,是标准正方形,只需给SVG元素添加圆角属性即可:
- 给SVG标签添加
style="border-radius: 50%; overflow: hidden;"属性即可直接实现圆形效果 - 如果需要复用样式,也可以单独写CSS类绑定到SVG元素上
示例代码片段:
<svg style="border-radius: 50%; overflow: hidden;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000pt" height="1000pt" viewBox="0 0 1000 1000" version="1.1"> <!-- 原有SVG内部代码不变 --> </svg>
方案2:修改SVG内部代码(适合单独使用SVG文件、不依赖外部CSS的场景)
通过SVG自带的裁剪路径功能实现圆形裁剪,修改后的完整SVG代码如下:
<?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000pt" height="1000pt" viewBox="0 0 1000 1000" version="1.1"> <defs> <linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="3.475598" y1="1.1821" x2="102.7784" y2="1.1821" gradientTransform="matrix(10.07021,0,0,10.07021,-35.000003,-11.90396)"> <stop offset="0" style="stop-color:rgb(49.803922%,0%,100%);stop-opacity:1;"/> <stop offset="1" style="stop-color:rgb(88.235294%,0%,100%);stop-opacity:1;"/> </linearGradient> <!-- 新增圆形裁剪路径 --> <clipPath id="circleClip"> <circle cx="500" cy="500" r="500"/> </clipPath> </defs> <!-- 给g标签添加裁剪路径引用 --> <g id="surface1" clip-path="url(#circleClip)"> <path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 783.335938 0 L 209.425781 0 C 55.613281 0 0 53.488281 0 213.285156 L 0 789.226562 C 0 944.03125 55.613281 1000 209.425781 1000 C 209.425781 1000 628.230469 1000 783.335938 1000 C 938.441406 1000 1000 944.03125 1000 789.226562 C 1000 634.421875 1000 213.285156 1000 213.285156 C 1000 53.488281 940.460938 0 783.335938 0 Z M 581.554688 288.144531 L 652 288.144531 L 425.09375 711.855469 L 343.601562 711.855469 M 671.117188 356.039062 L 671.210938 288.625 L 896.488281 466.210938 C 896.164062 487.175781 896.808594 511.339844 896.488281 532.304688 L 671.210938 709.894531 L 671.390625 641.867188 L 856.292969 499.550781 Z M 143.707031 499.550781 L 328.609375 641.867188 L 328.789062 709.894531 L 103.511719 532.304688 C 103.191406 511.339844 103.835938 487.175781 103.511719 466.210938 L 328.789062 288.625 L 328.882812 356.035156 Z M 143.707031 499.550781 "/> </g> </svg>
内容的提问来源于stack exchange,提问作者nasrin mehbi
相关产品推荐
相关产品推荐

