html -
问题描述
我有以下经典的 SVG 代码:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100">
<image
xlink:href="foo.webp"
height="100"
width="100"
x="0"
y="0"
image-rendering="optimizeQuality"
/>
</svg>
但是,在某些浏览器上,尚不支持 webp(iOS 和 macOS 我在看你:https ://caniuse.com/?search=webp )...
那么,有没有一种类似于<picture>
元素的方法来做这样的事情(语法显然是错误的,但我希望它确实传达了这个想法):
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100">
<image
xlink:href="foo.webp"
height="100"
width="100"
x="0"
y="0"
image-rendering="optimizeQuality"
/>
<fallback_to>
<image
xlink:href="foo.jpg"
height="100"
width="100"
x="0"
y="0"
image-rendering="optimizeQuality"
/>
</svg>
...当然没有得到双重http-hit问题。并且不使用客户端 Javascript(modernizr 或其他)。
非常感谢!
解决方案
也许你可以使用<foreignObject>
. 在元素内部,您可以指定所需的 HTML,例如<picture>
元素。
<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg" width="400">
<foreignObject x="0" y="0" width="300" height="200">
<picture xmlns="http://www.w3.org/1999/xhtml">
<source srcset="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a1/Johnrogershousemay2020.webp/200px-Johnrogershousemay2020.webp" type="image/webp">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a1/Johnrogershousemay2020.webp/200px-Johnrogershousemay2020.webp.png" alt="logo">
</picture>
</foreignObject>
</svg>
推荐阅读
- android - Android - Kotlin 文件在编译后存在于 apk 中
- c++ - 声明不带 const 的变量与带 const 的变量 - 测试问题
- mysql - 按日期过滤查询 Mysql
- python-3.x - 社帮自动查找最新的python 3版本
- c - C中的平行梯形规则
- c# - 如何将带有模型类名称的下拉列表中的显示数据更改为保存在数据库中的真实数据?
- c# - 从 c# WPF 中的工作人员检索 webBrowser.Document 内容
- directx - DirectX11 中的 OpenGL VAO、VBO 等效项
- r - 绘制具有不同 DV 但比例相同的回归线
- angular6 - 我注意到我的 Angular 应用程序中有一个非常奇怪的行为