首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在保持反混叠的同时呈现边缘清晰的svg元素?

如何在保持反混叠的同时呈现边缘清晰的svg元素?
EN

Stack Overflow用户
提问于 2014-03-04 02:24:38
回答 3查看 78.8K关注 0票数 74

是否有一种方法可以在保持抗混叠的同时呈现边缘清晰的svg元素?

我正在创建一个在现代浏览器中工作的基于浏览器的工具。

使用形状绘制属性并不能给出我想要的结果。

我希望我的元素具有良好的抗混叠,使路径看起来像下面的光滑shape-rendering: auto一样。

但我也希望不需要反混叠的元素(如开始框)看起来清晰、清晰,例如使用shape-rendering: crispEdges呈现时。

这个是可能的吗?我想把蛋糕也吃了吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-04 07:41:31

也许您为根svg元素设置了赋形属性。

您应该为每个形状元素设置形状呈现属性,如下所示。

代码语言:javascript
复制
<?xml version="1.0" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <rect x="10" y="10" width="150" height="20" shape-rendering="crispEdges" 
        fill="none" stroke="black"/>
    <path d="M80,30l100,100" shape-rendering="optimizeQuality" 
        stroke="black" stroke-width="5"/>
</svg>
票数 81
EN

Stack Overflow用户

发布于 2014-03-04 09:27:06

如果你想要你的盒子看起来锋利,没有任何模糊由于反混叠,并且不使用crispEdges模式,确保线的边缘在像素边界上。因此,例如,如果你的线条是一个奇数像素宽,给他们的坐标是0.5像素。

代码语言:javascript
复制
<rect x="10.5" y="10.5" width="150" height="20" 
    stroke-width="1px" fill="none" stroke="black"/>

在边界上,如果行程宽度是均匀的。

代码语言:javascript
复制
<rect x="10" y="10" width="150" height="20" 
    stroke-width="2px" fill="none" stroke="black"/>

当然,只有当SVG在1:1被呈现时,这才能真正发挥作用。也就是说,它不会被浏览器重新缩放。而且只适用于水平和垂直的线条。

票数 28
EN

Stack Overflow用户

发布于 2015-06-06 06:23:23

[我把这作为回应而不是评论,因为我想贴一张照片。否则,这是对@defghi1977 1977有用的帖子的评论。顺便说一句,+1 .]

代码语言:javascript
复制
<?xml version="1.0" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <rect x="10" y="10" width="150" height="20" shape-rendering="crispEdges" 
          fill="none" stroke="black" />
    <rect x="10" y="50" width="150" height="20" shape-rendering="auto" 
          fill="none" stroke="black" />
    <path d="M40,30l100,100" shape-rendering="crispEdges" 
          stroke="black" stroke-width="5" />
    <path d="M80,30l100,100" shape-rendering="auto" 
          stroke="black" stroke-width="5" />
</svg>

生产的

这是由Firefox 38.0.5呈现的。

在Internet 11中,两个shape-rendering设置都会产生相同的结果,而不是清晰的、反混叠的.

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22161624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档