你也可以看看这里:https://gist.github.com/larrybotha/7881691 - 这是这个“故事”的延续。在<img>
标签
修复SVG在IE9,IE10,IE11
IE9,IE10,IE11和不结垢不正确缩放与img
标签添加SVG文件时viewBox
,指定width
和height
属性。在不同的浏览器上查看this codepen。
当图像位于比图像宽度窄的容器内时,图像高度不会缩放。这可以通过两种方式解决。
使用sed
在bash去除宽度和SVG文件
按this answer on Stackoverflow height属性,这个问题可以通过只取出width
和height
属性来解决。
这个小脚本将递归搜索当前工作目录SVG文件,并删除了跨浏览器兼容的属性:
find ./ -name '*.svg' -print0 | xargs -0 sed -i "" -e 's/width="[0-9]*\.*\[0-9]*" //' -e 's/height="[0-9]*\.*\[0-9]*" //'
注意事项
删除width和height属性将迫使形象占据它的容器在非IE浏览器中的全宽度。
IE10(其他浏览器需要测试)会将图像缩小到任意大小 - 这意味着您需要将width: 100%
添加到您的CSS以适合其容器。
目标IE的CSS
由于上述方案需要CSS不管怎么说,我们还不如用一个黑客获得IE浏览器的行为,而不用担心有管理每个单独的SVG文件。
以下将针对包含SVG文件的所有img
标签在IE6 +(仅支持IE9 +支持SVG文件)。
/*
* Let's target IE to respect aspect ratios and sizes for img tags containing SVG files
*
* [1] IE9
* [2] IE10+
*/
/* 1 */
.ie9 img[src*=".svg"] {
width: 100%;
}
/* 2 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
img[src*=".svg"] {
width: 100%;
}
}
注意事项
这个目标包含“.SVG”在IE9,IE10,IE11和每img
标签 - 如果你不想对具体图像的这种行为,你必须添加一个类重写该图像的这种行为。
您的图片已经消失。 – robertc 2012-03-20 17:43:07
有一些警告,这取决于您是否将IE设置为100%或100%。我已经整理了一个测试页面,部分是因为IE团队可以修复它,但也要了解在使用不同属性时会发生什么情况:http://codepen.io/larrybotha/full/hmlAs – Larry 2014-01-31 13:37:47
本文可能有所帮助: https://开头的CSS技巧。com/scale-svg/ – 2016-04-15 16:19:45