【问题标题】:How to center a svg in a div container如何使 svg 在 div 容器中居中
【发布时间】:2016-03-10 04:21:55
【问题描述】:

我知道这个问题在 SO 上已被多次询问。我尝试了其中一些答案,但没有奏效。在 div 中居中 svg 元素的最佳方法是什么

<html>

<head>
<script src="http://d3js.org/d3.v3.min.js" ></script>

</head>

<body> 

<div  id='canvas'></div>


<script>

  var data = [10, 50, 80];
var r = 300;

var color = d3.scale.ordinal()
    .range(['red', 'blue', 'orange']);

var canvas = d3.select('#canvas').append('svg')    
    .attr('width', 700)
    .attr('height', 600);

var group = canvas.append('g')
    .attr('transform', 'translate(300, 300)');

var arc = d3.svg.arc()
    .innerRadius(200)
    .outerRadius(r);

var pie = d3.layout.pie()
    .value(function (d) {
    return d;
});

var arcs = group.selectAll('.arc')
    .data(pie(data))
    .enter()
    .append('g')
    .attr('class', 'arc');

arcs.append('path')
    .attr('d', arc)
    .attr('fill', function (d) {
    return color(d.data);
});

arcs.append('text')
    .attr('transform', function (d) {
    return 'translate(' + arc.centroid(d) + ')';
})
    .attr('text-anchor', 'middle')
    .attr('font-size', '1.5em')
    .text(function (d) {
    return d.data;
});

</script>   

</body>



</html>

我想把圆环图放在中间

D3 Donut Chart

【问题讨论】:

  • 您尝试了哪些方法,但没有成功?

标签: javascript html css d3.js svg


【解决方案1】:

您可以向 SVG 元素添加几行 css 行。您可以内联它或将其放在单独的样式表中。只要确保它加载。

svg{
    display: block;
    margin: auto;
}

这将使 SVG 与 div 的中心对齐。

【讨论】:

  • 我尝试了您的解决方案,但我认为它没有完全居中对齐。它看起来向左移动了一点
【解决方案2】:

只需将居中样式添加到您的 div。

<div  id='canvas' style="text-align:center;"></div>

它会起作用的。

【讨论】:

    猜你喜欢
    • 2021-12-19
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 2019-09-29
    • 2011-03-20
    • 2012-06-03
    • 1970-01-01
    相关资源
    最近更新 更多