[英]Using D3 selection functions to properly align SVG in HTML layout
我在玩D3圖表。
在我的<body>
標簽中,我有:
<body>
<div id="divs" style="margin-left: 5px; width: 100%;">
<d1 style="float: left;"><big>Oil Consumption - Barrels (from 1965)</big></d1> <br><br>
<d1 style="float: left;">BP Statistical Review of World Energy, June 2015</d1> <br><br>
<div id="div"></div>
<div id="div1" style="float: left;"></div>
</div>
</body>
在我的Javascript代碼中,我有:
var svg = d3.select("body").append("svg").attr("width",700).attr("height",400);
問題是d3.select("body")
在最后一個div之后垂直添加我的svg圖表,而我想做的是將svg與div水平對齊。
我怎樣才能做到這一點?
這是完整的Plunkr-> Plunkr
UPDATE
我已經按照@Mark的建議嘗試了,但是沒有用。 這是完整的Plunkr-> Plunkr
var svg = d3.select("#divs")
.append("div")
.style("float","left")
.style("margin-left",400)
.style("width", "75%")
.append("svg")
.attr("width", 700)
.attr("height", 400);
如果我對您的理解正確,則希望將svg
定位在ID為div1的div
的右側。
首先,為了使其正常工作,僅設置float: left
在div1上是不夠的,它需要以%或px為單位的顯式寬度 。
其次,您需要將svg
設為div
的ID為div的div
的子級,並將其包裝在div
,該div
也以顯式寬度浮動:
var svg = d3.select("#divs")
.append("div")
.style("float","left")
.style("width", "75%")
.append("svg")
.attr("width", 700)
.attr("height", 400);
更新為了使您的代碼正常工作,我必須將其修改為:
var svg = d3.select("#divs")
.append("div")
.style("margin-left", 400)
.style("margin-top", 50)
.style("width", "75%")
.append("svg")
.attr("width", 800)
.attr("height", 300);
並將div設置為<div id="div1" style="float:left; width: 25%;"></div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.