我正在使用svgcanvas,js logoeditor,但我无法设置svg对象的宽度 . 如果你去文件 - >导入图像并选择任何svg图像(检查谷歌crome)你不能看到这样的svg对象的宽度/高度选项;但是如果你导入图像,那么你会看到宽度/高度选项 . 我也需要设置svg的宽度/高度 .
我正在使用svgcanvas,js logoeditor,但我无法设置svg对象的宽度 . 如果你去文件 - >导入图像并选择任何svg图像(检查谷歌crome)你不能看到这样的svg对象的宽度/高度选项;但是如果你导入图像,那么你会看到宽度/高度选项 . 我也需要设置svg的宽度/高度 .
1 回答
It's true that setting height and width will override the default dimensions when you use SVG as an image. But of course it's not that easy:
如果使用
<img>
嵌入SVG,设置 height 和 width 将使SVG比例在大多数浏览器中可预测,但在Internet Explorer中不可预测 . 使用像img { width: 100%; height: auto; }
这样的CSS,IE会自动缩放图像区域以保持宽度:高度宽高比不变,但它不会缩放实际图形以匹配图像尺寸的比例 .如果你使用
<object>
,<embed>
或<iframe>
来嵌入你的 SVG ,在't change the size of the frame; you'上设置 height 和 width 如果 SVG 太大,只需在 iframe 内获取滚动条 .如果您使用内联SVG(即直接在HTML5代码中使用 **** ),那么
<svg>
元素将执行双重任务,定义网页内以及SVG内的图像区域 . 您使用CSS为SVG设置的任何 height 或 width 将覆盖<svg>
上的 height 和 width 属性 . 因此像svg{width: 100%; height: auto;}
这样的规则将取消您在代码中设置的尺寸和宽高比,并为您提供内联SVG的默认高度 . 如上所述,这将是150px或100vh,具体取决于浏览器 .所以忘了 height 和 width . 您实际上并不想设置确切的 height 和 width ,您希望SVG缩放以匹配您在CSS中设置的宽度和/或高度 . 您想要的是为图像设置纵横比,并使绘图比例适合 .