首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE中带有svg图像的CSS表格布局高度

IE中带有svg图像的CSS表格布局高度
EN

Stack Overflow用户
提问于 2014-12-05 11:49:35
回答 2查看 687关注 0票数 0

看看下面的代码和小提琴,请告诉我为什么在IE (9-10-11) svg图像的高度不匹配兄弟(内容在右边)的高度,像在chrome,FF,Safari?

在IE中,在左边的表格单元格中有额外的垂直空间。

谢谢--

HTML

代码语言:javascript
复制
    <div class="table-layout">
        <div class="table-cell fixed-width">
           <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 180.22 150.718" enable-background="new 0 0 180.22 150.718" xml:space="preserve">
              <circle fill="#E3E3E3" cx="91.5" cy="75.167" r="75.167" />
           </svg>
        </div>
        <div class="table-cell" style="border: solid red 1px">
        <div class="row">
            <div class="col-xs-12">content</div>
        </div>
        <div class="row">
            <div class="col-lg-6">
                <div class="row">
                    <div class="col-sm-6">content</div>
                    <div class="col-sm-6">content</div>
                </div>
            </div>
            <div class="col-lg-6">content</div>
        </div>
    </div>

CSS

代码语言:javascript
复制
   .table-layout {
     display: table;
     width: 100%;
     table-layout: fixed;
   }
   .table-layout .table-cell {
     display: table-cell;
     border: solid 1px #ccc;
     vertical-align: top;
   }
  .fixed-width {
    vertical-align: middle !important;
    background-color: #a3a3a3;
    width: 60px;
    padding: 5px;
   }

小提琴:http://jsfiddle.net/gp2nqzh0/1/

EN

回答 2

Stack Overflow用户

发布于 2014-12-05 12:58:09

.table-layout中删除width:100%;,它就能正常工作。

票数 0
EN

Stack Overflow用户

发布于 2017-12-14 01:29:09

这是一个老帖子,但仍然有意义。

对于那些没有IE (希望大多数人)或仿真器的人来说,我附上了一个截图。

解决方法:svg元素上设置高度和宽度。

代码语言:javascript
复制
.fixed-width svg {
     width: 60px;
     height: 60px;
}

我在IE 11上使用Browserstack测试了你的小提琴,我可以确认它可以工作。设置max-widthmax-height属性也是有效的。

为什么会发生这种情况?

我推荐阅读这篇文章来完全理解浏览器中svg的行为:https://css-tricks.com/scale-svg/奖励:这也提供了针对许多场景的解决方案。

但对于这种情况,您的答案如下(来自文章),

许多浏览器-IE,Safari,以及2014年夏天之前发布的Opera和Chrome版本-不会自动调整内联SVG的大小。如果不同时指定高度和宽度,这些浏览器将应用其通常的默认大小,如前所述,不同浏览器的默认大小会有所不同。图像将缩放以适应该高度或宽度,并在其周围保留额外的空格。同样,如果将高度和宽度都保留为auto,会发生什么情况也是不一致的。

Internet Explorer减少了不同之处,图像和内联SVG使用100%的宽度和150px的高度。

因为您的div中有一个fixed-width类,所以我假设您不需要担心可伸缩性,在svg上设置固定的宽度和高度就足够了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27308429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档