svg - 为什么 SVG 笔画是半透明的
问题描述
我有一个 SVG 图,它由许多<path>
元素组成,其中一些元素重叠。我遇到的问题是路径重叠的地方,第一个元素的颜色在第二个元素改变颜色时显示出来。我尝试使用该stroke-opacity
属性,但这并不能解决问题。然后我注意到,当笔画大于 1px 时,顶部颜色按预期显示,但边缘后面有颜色的条纹。有没有办法阻止这种情况?提前致谢。
<!DOCTYPE html>
<html>
<body>
<svg height="80" width="300">
<g fill="none" stroke-width="1">
<path stroke="red" d="M5 20 l215 0" />
<path stroke="black" d="M5 20 l215 0" />
</g>
<text x="0" y="12">1px stroke shows as brown rather than black</text>
<g fill="none" stroke-width="4">
<path stroke="red" d="M5 50 l215 0" />
<path stroke="black" d="M5 50 l215 0" />
</g>
<text x="0" y="40">Larger than 1px has overfringing</text>
</svg>
</body>
</html>
解决方案
您可以尝试向 SVG 元素添加形状渲染:
shape-rendering: auto | optimizeSpeed | crispEdges | geometricPrecision | initial | inherit
https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering
推荐阅读
- excel - 单元格更改未触发 VBA 宏
- wordpress - 在手表更改时重置 VueJS 分页
- python - 为什么 np.nan_to_num() 不转换这个 (nxm) 数组?
- c# - Azure Service Fabric:有状态分片
- html - 是否可以在 Wordpress 上编辑 index.html?
- lambda - 将 Java lambda 转换为 kotlin
- ruby-on-rails - 将 Rails 会话存储从 cookie 切换到缓存:InvalidAuthenticityToken
- java - Spring Boot - War中的JSP表单提交问题
- amazon-web-services - 雅典娜中 YYYY-MM-DD 日期格式的字符串
- r - html_nodes 提取 1 个数字需要很长时间