- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我从各种来源收集到 svg 中的 vector-effect="non-scaling-stroke"应该适用于当前版本的 Opera、Firefox 和 Chrome。 (不确定 IE10)。
但是我只能让它在Opera和Firefox中工作,然后只有当它直接嵌入为图像时,如果它在CSS中缩放为背景图像则不起作用。
我的问题:
为什么不用 chrome?
为什么不在背景图片中?
是否有一种标准方法可以让我在所有最新的浏览器中使用它?
HTML:
<div><img src="http://dl.dropbox.com/u/60476509/close.svg" /></div>
<div><img id="one" src="http://dl.dropbox.com/u/60476509/close.svg" /></div>
<div id="two"></div>
<div id="three"></div>
CSS:
#one {
width: 200px;
height: 200px;
}
#two {
background-image: url("http://dl.dropbox.com/u/60476509/close.svg");
height: 100px; /* native size */
width: 100px;
background-size: contain;
}
#three {
background-image: url("http://dl.dropbox.com/u/60476509/close.svg");
height: 200px;
width: 200px;
background-size: cover;
}
最佳答案
我不知道引擎盖下发生了什么,但有一个更简单的解决方案,至少对于内联 SVG(不确定背景)。变化:
<img src="svg-source.svg"/>
到:
<object type="image/svg+xml" data="svg-source.svg"></object>
另外,你需要确保你有 viewBox
defined用于 svg 文档。
根据 this answer , 使用 object
无论如何是更好的做法。 Here是一篇不错的博客文章,推荐(为了跨浏览器兼容性):
<object type="image/svg+xml" data="svg-source.svg">
<img src="png-version.png"/>
</object>
我没有测试后一个选项,但如果它有效,它比 this 简单得多。解决方案。
编辑:我发现作为嵌入式对象,SVG 会干扰“悬停”和“单击”事件,所以我最终屈服并决定我必须完全嵌入 SVG。但是我没有兴趣粘贴每一个,所以我在我的 javascript 文件的顶部有以下内容(我使用的是 JQuery):
$(document).ready(function()
{
$('.deferred-load').deferredLoad();
}
$.fn.deferredLoad = function()
{
$(this).each(function()
{
$(this).load($(this).attr('data-load'));
});
}
现在代替 <img src="svg.svg"/>
我可以写<div class="deferred-load" data-load="svg.svg"></div>
.
当然,如果没有启用 Javascript,这是行不通的。但这比粘贴所有丑陋的 XML 要好得多。
关于css svg 和矢量效果 ="non-scaling-stroke"浏览器兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15703266/
谁能给我一个这些属性的例子:stroke-dasharray、stroke-linecap、stroke-linejoin 我试过使用它们,但我不太理解它们值的 sentext 结构。 最佳答案 Ph
如何检查笔划是否与其他笔划交叉?这可能吗? 我尝试使用 ispointInPath() 和 ispointInStroke(),但它不起作用。 最佳答案 如果两个笔划都是线段,您可以使用 Paul B
我创建了一个矩形形状以将其用作列表项背景。我的问题是笔画不跟随 View 边框,而是留出 +/- 笔画宽度的边距。 这是我的形状的 xml: 这是我风格的 xml:
两者的行程元素在这里被忽略。 的笔触颜色设置为蓝色,同时出现在 上元素也。为什么? 我想要所有 3 个元素的不同条纹颜色。但它不起作用。 最佳答案 因为 c
为什么在这个 SVG 中,我可以在悬停时更改描边宽度,但不能更改描边颜色? 问题在下面的代码片段中清楚地呈现出来。 stroke-width:5;正在查看应用于 中的所有元素, 而 stroke:b
在 Gimp 2.6 中有一个“编辑”->“描边路径”对话框。在此对话框中有一个“描边线”区域,其中包含线宽、端点样式、连接样式、斜接限制等选项。 我将如何使用 script-fu 中的“描边线”选项
当笔画宽度大于 1 像素时,我在 IE 中动画笔画路径时遇到一个奇怪的问题。我正在使用以下脚本(不是我创建的): //inspired by http://product.voxmedia.com/p
通过 ng-style 传递这些值,所以: ng-style="{'stroke-dasharray':data.value, 'stroke-dashoffset': data.value}" 打破
stroke 开头的属性可以定义线段的各种属性,包括线条的宽度、起末的形状、线条类型 SVG提供了一个范围广泛 stroke 属性,但我们主要讲解一下几种: stroke stroke-
我想检测 QuadCurve 上的鼠标点击事件,但只检测“笔划”部分。仅清除图像的绿色部分。 在这里,我使用红色填充值,但在我的应用程序中我使用透明填充值。因此检测曲线可见部分的点击是至关重要的。 示
我真正想要的是一种在 WPF 形状(例如椭圆)上设置负描边粗细值的方法,以便描边轮廓向外绘制到形状的左侧和顶部,而不是在形状内部,覆盖我的书写当我使笔划的想法太粗时的文字...我希望椭圆的半径保持不变
如何在不使用插图的情况下仅在可绘制对象的右侧使用笔划?
我目前正在使用下面的代码绘制一条线,并希望在我的路径周围设置边界框,但是如果我调用 path.getBounds(),我会得到一个忽略笔划宽度的边界框和线连接因此我的绘图最终在放置在 JViewpor
我从这个网站和这里的贡献者那里得到了很多帮助,谢谢。现在我有一个关于 Fabric.js 中带有笔划的矩形的问题,因为我将它用作图像和文本的占位符,当我缩放它时,边框线宽度也被缩放,我认为这是我想要的
我想我不太明白这里的某些东西。stroke-dasharray 中的百分比单位与什么有关?我在考虑相对于 SVG View 框的问题,但我可能错了。 我的问题:我有一个 SVG,宽度为 320px,高
我正在用 SVG 制作一个简单的动画 stroke-dashoffset以及一系列路径。 问题是:在没有动画的情况下,内联 SVG 有两个具有非常锐 Angular 的三 Angular 形,并且它们
我正在研究 SVG 仪表,我想在范围 slider 移动到带有渐变颜色的事件笔触填充时将半圆分成几部分。并且想在计针移动时再增加一条黑色运行轨迹。我曾尝试使用 stroke-dasharray 但添加
我有 3 个 svg donut chart 表,每个图表都有一条用 stroke-dasharray 创建的线,所有图表加起来为 100%。 我希望每个图表都从最后一个图表结束的地方开始,所以第一个
我有 3 个 svg donut chart 表,每个图表都有一条用 stroke-dasharray 创建的线,所有图表加起来为 100%。 我希望每个图表都从最后一个图表结束的地方开始,所以第一个
我想在我的 Google 折线图中的点周围添加一笔画。 来自points-documentation Google Charts(底部)我们有: The following style customi
我是一名优秀的程序员,十分优秀!