我有一个很好的背景SVG图像来自inkscape,标志着从一个文本部分到下一个文本部分的过渡.我希望该背景图像向上或向下缩放到文本部分的整个宽度.出于响应性的原因,该大小取决于浏览器宽度.但是,我希望背景图像的固定高度为20px.
什么行不通:
background-size: cover;
这对我不起作用,因为它会在右边切掉图像而不是缩小图像,好吧. background-size: contain
这对我不起作用,因为它总是会同时在x和y方向上缩小图像.因此,图像始终保持其原始xy比率,好吧.cover
或者contain
这不起作用,即使我本来期望的.我用PNG尝试了它并且它有效.但是使用SVG,正确调整宽度,然后调整高度,使图像保持原始的比例,我不希望这样.但是,我希望使用SVG,因为它是一个相对简单的图像,我希望它在所有设备上的最佳分辨率,包括非常大的屏幕,而不使用巨大的PNG图像.background-size: 100% 20px;.因为它仍然无法工作,我也尝试删除SVG标记中的宽度和高度以及viewBox规范.没有成功.我在配备 M1(Apple ARM 架构)的 Macbook 上,尝试使用layoutparser库运行以下 Python 代码,该库间接使用pycocotools:
import layoutparser as lp
lp.Detectron2LayoutModel()
Run Code Online (Sandbox Code Playgroud)
我收到了错误:
[...]
ImportError:
dlopen([...]/.venv/lib/python3.9/site-packages/pycocotools/_mask.cpython-39-darwin.so, 0x0002):
tried:
'[...]/.venv/lib/python3.9/site-packages/pycocotools/_mask.cpython-39-darwin.so'
(mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')),
'/usr/local/lib/_mask.cpython-39-darwin.so' (no such file),
'/usr/lib/_mask.cpython-39-darwin.so' (no such file)
Run Code Online (Sandbox Code Playgroud)
对我来说最重要的信息似乎是[...] is an incompatible architecture (have 'x86_64', need 'arm64e') [...]。确实,我使用的是Apple ARM架构,有时有些软件不支持。这通常可以通过使用模拟 Intel-x64 架构的 Rosetta 来解决。所以我用 Rosetta ( arch -x86_64 zsh) 启动一个终端,创建一个新的虚拟环境,重新安装依赖项,然后尝试再次运行代码......
...我收到了与没有 Rosetta 时遇到的相同错误:
[...] is an incompatible architecture (have 'x86_64', need 'arm64e') [...] …