html - IE 11 中的 SVG 高度
问题描述
我有一个复杂的 HTML 代码,我在这里简化了:
<label class="FancyInput">
<input type="text">
<svg viewBox="0 0 10 18" class="FancyInputBorder">
<path d="M-1000,12 L223.166144,12 C217.241379,12 217.899687,12 225.141066,12"></path>
</svg>
<svg viewBox="0 0 14 12" class="FancyInputCheck">
<path d="M1 7 5.5 11 L13 1"></path>
</svg>
</label>
<style>
.FancyInputBorder {
width:1200px;
height:18px;
display: inline;
}
.FancyInputCheck {
width:14px;
height:12px;
}
</style>
基本上 HTML 在 Chrome 和 IE 11 中的呈现方式不同。所以我删除了所有不需要的代码来说明问题。
在 Chrome 中 FancyInputBorder 确实具有正确的高度,即 18px,但在 IE 11 中却没有。
截屏 :
任何人都可以帮忙吗?为什么 IE 11 没有按照要求将 SVG 的高度设置为 18 像素。
谢谢干杯
解决方案
可能的答案是使用属性viewbox
and preserveAspectRatio
。
<svg viewBox="0 0 1200 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMin slice">
<defs></defs>
<g>
<path d="whatever you have here"></path>
</g>
</svg>
也可以在 svg 标签 => 上设置样式,style="width:1200px;height:18px;"
但根据我的经验,在大多数情况下都可以省略。在大多数情况下,删除 svg 标签上的width
andheight
属性(如果有的话)。根据您使用 svg 代码内联、在 CSS 中或作为 img src 的代码,情况可能会有所不同。
因此,一旦您展示了一些重要的实际代码,就可以查看一个非常笼统的答案。
推荐阅读
- c# - 在 C Sharp 中替换 If else
- swift - 如何正确使用'init'来防止错误:“属性初始化程序在'self'可用之前运行”
- javascript - 自己的 _.map() 在 JavaScript 中实现
- javascript - 如何在 Github 中自动打开 PR 列表?
- excel - 带有不需要的文件的 Python 复制和过去目录
- vb.net - 如何在vb中不调用contruvtor继承
- apache-spark - 在 Spark 中使用 dropduplicates() 对应用程序性能的利弊
- javascript - Mongo 基于嵌套日期参数返回数据
- excel - VBA 将 R1C1 公式更新为表格公式
- flutter - 将时间选择器添加到颤动代码会导致错误