我有了它内部的一个SVG的容器DIV:div容器高度不能扩展到满足孩子SVG的高度在IE
<!DOCTYPE html>
<body>
<div class="container">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="200">
<rect x="0" y="0" width="50" height="200" />
</svg>
</div>
</body>
下面CSS:
svg
{
width: 100%;
height: 100%;
}
div.container
{
width: 100%;
background-color: red;
}
在火狐,铬等容器div将匹配svg的高度。但IE浏览器并非如此(我在IE9中测试过)。从svg样式块中删除宽度/高度:100%可以解决这个问题,但是我需要这些样式来扩展我的SVG(我在此示例中的jsfiddle的SVG元素中省略了preserveAspectRatio)。
这里是的jsfiddle: http://jsfiddle.net/Cx5jR/
我在想,我可以使用变焦:1,以强制IE认识到div元素上hasLayout的,但这并没有工作。
任何想法?
下面是从IE9中渲染效果的截图 - 注意div(红色背景)不能在SVG(黑色矩形)高度下缩放。
你能提供一个问题的截图吗?我不确定我在IE9中看到的是与您相同的问题 - 虽然渲染效果与Chrome中不一样。另外,如果您事先知道.SVG的高度,为什么不设置'height:200px'? – ASGM 2013-03-03 12:16:10
感谢您的评论,我在这个例子中设置的SVG只是一个虚拟 - 在我的真实例子中,我不知道SVG在加载页面之后会达到什么样的高度和宽度。我使用offsetWidth来获取宽度(响应布局),然后从中计算高度。 – 2013-03-03 12:19:28
在这种情况下,行为的屏幕截图仍然会有所帮助(我想确保我正在复制该问题)。 – ASGM 2013-03-03 12:21:26