android - Android 浏览器上的 SVG 渲染

标签 android html css svg

我有一个问题很久了,我找不到解决方案。

我在 div 的左上角有一个 SVG 图像作为 css 背景。 SVG 图形应该在 div 背景上无缝合并,而不是在呈现的图形周围产生细边框。它在桌面浏览器上运行良好(在 Chrome、Firefox 和 Opera 上测试过),但在 android stock 浏览器、chrome for android 和 firefox for android 上失败。

这是一个小测试用例:http://jsfiddle.net/SDJHA/1/ (SVG 代码作为注释在 Javascript 框架上)

CSS 代码是:

.cont{ background-color : #7AC943; width : 300px; height : 300px; }

.elementOne{
    background-image: url("data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%22100px%22%20height%3D%22100px%22%20viewBox%3D%220%200%20100%20100%22%20enable-background%3D%22new%200%200%20100%20100%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%237AC943%22%20points%3D%22100%2C100%20100%2C0%200%2C100%20%22%2F%3E%3C%2Fsvg%3E");
    width : 100px; height: 100px;
    background-size: 100px 100px;
    background-repeat: no-repeat;
    background-color : white;
}

HTML : <div class="cont"><div class="elementOne"></div></div>

这可能是计算子像素时 android svg 渲染引擎上的一个错误...我不知道。

在 Asus Transformer 和 HTC One 上测试。

有什么建议吗?

谢谢!

最佳答案

我猜测线条是由于将两部分合成到页面上而出现的。 Angular 是不透明的并试图覆盖较大的 div,并且您会得到一些边缘抗锯齿效果。

我认为如果 svg 是相同大小的 png,假设以相同的方式应用它,您可能会得到相同的效果。

您可能会使用单个背景 svg 图像来描绘您想要的形状,就像使用带有背景图像的较大 div 一样。

关于android - Android 浏览器上的 SVG 渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18409061/

相关文章:

java - 意式 Espresso 。 NoSuchMethodError UsageTracker

html - 如何通过按钮或 anchor 更改标题

javascript - jQuery 漂亮的照片插件不会在图库中显示缩略图

css - 背景图片响应式设计

android - Qt使用JNI时在哪里寻找java类

javascript - 在一个云函数中从firebase数据库检索多个数据

android - 如何在 OpenGL ES 中绘制去除隐藏线的线框网格?

javascript - 淡化导航并使其在向下滚动时固定,在向上滚动时淡化

html - 如何在 bootstrap 5 表格单元格中垂直对齐文本?

html - 如何在同一页面将表格更改为不同的样式