html – ie11中的SVG问题

前端之家收集整理的这篇文章主要介绍了html – ie11中的SVG问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个div的高度设置为320像素,那么它的小孩被设置为100%的宽度.
这个小孩就是一个SVG文件,我把宽度设置为容器的200%.
在chrome和firefox工作正常,我得到一个很好的形象像这样:

HTML看起来像这样:

<div class="kit-template ng-isolate-scope front">
    <div class="svg-document ng-scope">
        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 259.5 131.4" enable-background="new 0 0 259.5 131.4" xml:space="preserve" class="ng-scope">
            <!-- Removed for brevity -->
        </svg>
    </div>
</div>

CSS / SASS看起来像这样:

.kit-template {
    overflow: hidden;
    position: relative;   
    height: 320px;

    .svg-document {  
        width: 100%;   
        overflow: hidden;
        margin: 0 auto;
        /*position: absolute;
        bottom: 0;*/

        svg {
            width: 200%;

            path,polyline,polygon,rect {
                cursor: pointer;
            }
        }
    }
}

就像我所说的,Chrome,Firefox和IE Edge都可以正常工作.但是在IE11中我得到:

如果我检查这个元素,我可以看到SVG看起来像是在左边和右边都有填充,但是我可以向你保证.

有人知道为什么会发生这种情况吗?

更新1

我在codepen上创建了一个非常简单的版本,所以你可以看到这个问题.
这里是:

http://codepen.io/r3plica/pen/Kdypwe

查看在chrome,firefox,Edge然后IE11.你会看到只有IE11有问题.

解决方法

您可以做的是将height =“320”属性添加到SVG标签中.所以IE可以正确渲染.我相信IE11在你的CSS中使用宽度200%被抛弃.但是由于xml:space =“preserve”是默认值,只设置高度会保持SVG外套的比例.

IE11中的测试代码示例:

http://codepen.io/jonathan/pen/MarvEm

<svg height="320" viewBox="0 0 248.2 142.8" enable-background="new 0 0 248.2 142.8" xml:space="preserve">

还要删除XML命名空间标签,因为它不需要HTML页面.而且您也可以删除一些SVG属性,如版本,xmlns,xmlns:xlink,x和y,因为这些属性也不是必需的.

猜你在找的HTML相关文章