【问题标题】:SVG. What is the correct way to position an SVG tag in the DOM?SVG。在 DOM 中放置 SVG 标签的正确方法是什么?
【发布时间】:2015-06-27 02:24:26
【问题描述】:

因此,设置 svg 元素的宽度很容易(这里使用 d3):

svg = d3.select("body").append("svg")
    .attr("width",  300)
    .attr("height",  1024);

但是,我需要让 div 和 svg 元素并排放置,因此我需要为 svg 元素设置 x,y 位置。这不起作用:

svg = d3.select("body").append("svg")
.attr("x", 128)
.attr("y", 256)
.attr("width",  300)
.attr("height",  1024);

设置使用绝对定位的 css 类属性确实有效,但这有点麻烦。这里的正确解决方案是什么?

正如我在下面的评论中提到的,我想像这样布置 N 列 svg/div 对:

<svg>d3 coolness 0></svg><div>not so cool 0</div>
<svg>d3 coolness 1></svg><div>not so cool 1</div>
<svg>d3 coolness 2></svg><div>not so cool 2</div>

全部在一行中。

我什至尝试像这样将定位填充到 svg 元素中:

$('svg').css({
    "left": 200 + "px",
    "top": 300 + "px"
});

没有效果。嗯?

【问题讨论】:

  • 你的最后一句话是对的,为什么这么痛苦?你也可以把它们放在桌子或弹性盒子里。
  • 如果您需要&lt;svg&gt; 元素在文档中流动,请确保它的display 属性设置为inline(很可能,默认设置为block)跨度>
  • 这里有更多的上下文。我想要在屏幕上水平放置一系列 DOM 元素: stuff 0
    stuff 1
    stuff 2
    stuff 3
    .
  • 您正在尝试进行内联/块内联布局,但您的元素使用块显示。
  • 罗伯特所说的,或使用float: left;

标签: svg d3.js


【解决方案1】:

我已经心软了,会按照评论者的建议继续使用 css。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-31
    • 2023-01-10
    • 2019-07-28
    • 2011-12-11
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    相关资源
    最近更新 更多