我无法弄清楚 CSSpadding
属性是如何为svg
元素解释的。以下片段(jsFiddle):
<!DOCTYPE html>
<meta charset="utf-8">
<title>noob d3</title>
<style>
svg{background-color:beige;
padding:0px 0px 50px 50px;}
rect{fill:red;
stroke:none;
shape-rendering:crispEdges;}
</style>
<body>
<script src="//d3js.org/d3.v3.min.js"></script>
<script>
d3.select("body")
.append("svg")
.attr("width", 155)
.attr("height", 105)
.append("g")
.append("rect")
.attr("class", "frame")
.attr("x", 50)
.attr("y", 50)
.attr("width", 50)
.attr("height", 50);
</script>
</body>
... 在 Firefox 和 Chrome 中显示明显不同。更糟糕的是,这两种显示对我来说都没有意义:显示svg
元素的大小(“米色”矩形)看起来比我预期的要大得多。
所以我的问题有两个方面:1)元素的padding
属性应该如何影响事物在其中绘制的位置?2) 是否有一个 polyfill 可以确保 Chrome 和 Firefox 都以相同的方式处理填充?svg