在下面的代码片段中,添加svg元素会导致出现垂直滚动条。删除svg元素会删除滚动条。我想知道为什么会发生这种情况,是否有一种不可行的解决方案(例如width:99%;height:98%可以解决问题,但这是一个丑陋的解决方案)。
我无法删除上层DIV样式,因为其他HTML结构也位于这些容器中,需要保留它们。
我无法删除上层DIV样式,因为其他HTML结构也位于这些容器中,需要保留它们。
.menuquery {
border: 1px solid #ccc;
overflow: auto;
box-sizing: border-box;
}
.xainnersubformdefault {
/* allows the svg to autosize */
width: 100%;
height: 100%;
}
.xadatabox {
height: 100%;
/* essential for jtable to scroll and not leak */
}
.datachart {
width: 100%;
height: 100%;
/* position:relative; */
/* to make an svg fill its container, this is required, see stackoverflow 9566792 */
}
svg {
width: 100%;
height: 100%;
border: 1px solid green;
box-sizing: border-box;
}
<div class="menuquery" style="width:300px;height:200px">
<div class="xa xafield xadatabox">
<div class="xainnersubformdefault">
<div class="datachart">
<svg></svg>
</div>
</div>
</div>
</div>
绿色边框和盒子大小在SVG上只是为了让我们看到SVG的边缘,在最终版本中不需要
如果我将SVG更改为DIV,并使SVG CSS应用于该DIV,则不会出现滚动条,因此SVG元素似乎有所不同。
我已在Firefox和IE中进行了测试。两者都显示滚动条,但是IE显示的可滚动内容略多。
svg
转换为block
元素,但如果元素是inline
,那么font-size
是最好的选择。 - Abhishek Pandey