asp.net – SVG的图像在浏览器与PNG后备
|
我想在网站上使用公司标志的SVG版本。目前,所有当前版本的主要浏览器(IE,Safari,Chrome,Firefox,Opera)都支持SVG,所以这似乎并不疯狂。然而,旧的浏览器仍然存在,所以我需要回到PNG支持。 显而易见的解决方案是将SVG内容放在一个对象标签中,像这样(原始的内联样式…): <object data='logo.svg' style='height:3em' >
<img src='logo.png' style='height:3em' />
</object>
这在理论上应该渲染的对象,如果可能的话,否则渲染img。但是,Chrome不喜欢这种方式,并将高度样式应用到对象本身,而不是SVG,所以我最终得到一个类似iframe的盒子,滚动条,显示一个巨大的标志。 另一个解决方案是使用PNG作为img源,然后在渲染时使用JavaScript的SVG源将其交换,如果我认为我在支持SVG的浏览器上运行。这不是理想的,因为PNG仍然会下载,我不知道我可以正确检测SVG支持。不幸的是,jQuery似乎没有SVG检测功能。 最后,由于我的网站与ASP.NET一起部署,我可以在服务页面之前检查用户代理字符串,并指定img源,具体取决于我是否支持SVG。但这也有潜在的问题,我不信任我可以做正确的电话。 为图像做SVG的首选方法是什么? 解决方法这是一个老问题,但这里是另一个解决方案:>下载一个Modernizr的版本,修剪下来只是测试SVG(假设这是你需要的唯一的测试)。 if (!Modernizr.svg) {
$("#logo").css("background-image","url(fallback.png)");
}
SVG是Modernizr的完美用例,因为没有简单的本地方式提供回退。 注意:浏览器不会加载(png和svg)版本。 对于记录:唯一的原因,你会需要一个回退SVG这些天,如果你必须支持IE 8和下来,或较旧的Android。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – jqgrid jsonReader配置
- asp.net – 在.NET 4.5 Azure部署中找不到编译器可执行文件
- 单元测试ASP.NET MVC 2路线与AreaRegistration.RegisterAll
- asp.net – 在新的MVC4应用程序中获取UserId(int)
- asp.net-mvc-3 – 使用FluentValidation / MVC 3验证客户端
- asp.net-mvc – ASP.NET MVC 4在调试模式下捆绑js文件
- asp.net – .axd文件生成404错误
- asp.net – 如何使用在web.config文件
- asp.net – HttpClient:通常只允许使用每个套接字地址(协议
- asp.net-mvc-3 – 在MVC3中扩展不引人注目的javascript以在
- asp.net-mvc – @ Html.ValidationSummary(true)
- asp.net-mvc-4 – 如何在mvc4 ActionLink中加密查
- asp.net代码中修改web.config节点的具体方法
- asp.net-mvc – Asp.Net MVC Ajax.BeginForm没有
- asp.net-mvc – 自定义HtmlHelper呈现文本而不是
- asp.net-mvc – 从Asp.net MVC发送HTML电子邮件的
- asp.net核心 – 无法使用托管代理在Visual Studi
- asp.net – 保持visual studio从bin / on重建中删
- asp.net-mvc-3 – 如何挂钩错误的jQuery验证不引
- asp.net-mvc – 使用CSVHelper将流输出到浏览器
