我已经通过D3创建了一个svg但是CSS没有得到正确应用
我正在寻找两个svg一个低于另一个,所以我给了margin-left和margin-top但没有运气
我正在尝试使用Chrome无法正常工作,但在小提琴中工作正常
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>D3 Test</title>
<script type="text/javascript" src="D3lib/d3.js"></script>
<style type="text/css">
.svg_class {
margin-left:0px;margin-top:70px;background-color:green;
}
.svg_class1 {
margin-left:0px;margin-top:0px;background-color:green;
}
</style>
</head>
<body>
<script type="text/javascript">
// One way
var width = 500,
height = 50;
var dataset = [5,10,15,20,25];
var svg = d3.select("body")
.append("svg")
.attr("id","svg_1")
.attr("width",width)
.attr("height",height)
.attr("class","svg_class1");
var circle = d3.select("#svg_1")
.selectAll("circle")
.data(dataset)
.enter()
.append("circle");
circle.attr("cx",function(d,i){
return (i * 50) + 25;
})
.attr("cy",height/2)
.attr("r",function(d){
return d;
});
// Other way
var w = 500, h = 50;
var data = [5,10,15,20,25,30];
d3.select("body")
.append("svg")
.attr("id","svg_2")
.attr("width",w)
.attr("height",h)
.attr("class","svg_class");
d3.select("#svg_2")
.selectAll("circle")
.data(data)
.enter()
.append("circle")
.attr("cx",function(d,i){
return (i * 50) + 25;
})
.attr("cy",h/2)
.attr("r",function(d){
return d;
});
</script>
</body>
这里是fiddle链接
答案 0 :(得分:0)
您的SVG正在显示inline
(就像图片一样)。如果你display:block
他们,他们将会堆叠并确认margin-top
。
svg {
display:block;
}
.svg_class {
margin-left:0px;
margin-top:100px;
background-color:blue;
position: relative;
}
.svg_class1 {
margin-left:0px;
margin-top:0px;
background-color:green;
position: relative;
}
这是一个小提琴:https://jsfiddle.net/zw43esrh/1/
编辑:检查一下:https://stackoverflow.com/a/10324608/5385381
特别是这一位vertical margins will not have any effect on non-replaced inline elements