html - 圈出彼此相邻的 DIV 元素

标签 html css css-float geometry

我正在为学校作业制作数据可视化。我有很多不同大小的圆形 div 元素。有可能让他们挨着吗?现在我使用 float: left;但 div 元素位于 1 行,如果其中一个较大,则有空白。

网页:http://i290808.iris.fhict.nl/dv3/

1 个圆圈 HTML 示例:

<div class="circle" style="height: 200px; width: 200px; border: 15px solid rgb(255, 141, 0); background-image: url('http://zapp.trakt.us/images/episodes/9635-4-11.jpg?17'); background-size: cover;">
    <div class="circle" style="height: 100%; background-color:rgba(255, 146, 0, 0.4)">
        <h2 style="font-size: 25px">New Girl</h2>
    </div>
</div>

(此 HTML 元素中有样式元素,因为我需要在 PHP 文件中更改此信息)

CSS 文件:

.circle {
    border-radius: 100%;
    display: table;
    float: left;
}

h2 {
    color: #FFF;
    text-align: center;
    vertical-align: middle;
    display: table-cell;
}

最佳答案

使用 d3.js 的气泡图最适合您的需求。

这是一个有效的代码片段:

var data = {
  "name": "animate",
  "children": [
    {"name": "Easing", "size": 17010},
    {"name": "FunctionSequence", "size": 5842},
    {
      "name": "interpolate",
      "children": [
        {"name": "ArrayInterpolator", "size": 1983},
        {"name": "ColorInterpolator", "size": 2047},
        {"name": "DateInterpolator", "size": 1375},
        {"name": "Interpolator", "size": 8746},
        {"name": "MatrixInterpolator", "size": 2202},
        {"name": "NumberInterpolator", "size": 1382},
        {"name": "ObjectInterpolator", "size": 1629},
        {"name": "PointInterpolator", "size": 1675},
        {"name": "RectangleInterpolator", "size": 2042}
      ]
    },
    {"name": "ISchedulable", "size": 1041},
    {"name": "Parallel", "size": 5176},
    {"name": "Pause", "size": 449},
    {"name": "Scheduler", "size": 5593},
    {"name": "Sequence", "size": 5534},
    {"name": "Transition", "size": 9201},
    {"name": "Transitioner", "size": 19975},
    {"name": "TransitionEvent", "size": 1116},
    {"name": "Tween", "size": 6006}
  ]
};


var diameter = 960,
    format = d3.format(",d"),
    color = d3.scale.category20c();

var bubble = d3.layout.pack()
.sort(null)
.size([diameter, diameter])
.padding(1.5);

var svg = d3.select("body").append("svg")
.attr("width", diameter)
.attr("height", diameter)
.attr("class", "bubble");

//d3.json("flare.json", function(error, root) {
var node = svg.selectAll(".node")
.data(bubble.nodes(classes(data))
      .filter(function(d) { return !d.children; }))
.enter().append("g")
.attr("class", "node")
.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; });

node.append("title")
.text(function(d) { return d.className + ": " + format(d.value); });

node.append("circle")
.attr("r", function(d) { return d.r; })
.style("fill", function(d) { return color(d.packageName); });

node.append("text")
.attr("dy", ".3em")
.style("text-anchor", "middle")
.text(function(d) { return d.className.substring(0, d.r / 3); });
//});

// Returns a flattened hierarchy containing all leaf nodes under the root.
function classes(data) {
  var classes = [];

  function recurse(name, node) {
    if (node.children) node.children.forEach(function(child) { recurse(node.name, child); });
    else classes.push({packageName: name, className: node.name, value: node.size});
  }

  recurse(null, data);
  return {children: classes};
}

d3.select(self.frameElement).style("height", diameter + "px");
text {
  font: 10px sans-serif;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

关于向每个气泡添加背景图像,您可以将相应的路径添加到输入数据中的每个,然后使用 d3.js 应用它。

Various D3.js Bubble Chart tutorials | Google

关于html - 圈出彼此相邻的 DIV 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27461295/

相关文章:

html - 为什么顶部边距正在崩溃但底部边距却没有?

html - 如何在保持 div 居中的同时防止 div 损坏

html - 具有 body 图像背景的事件 LI 的 css 箭头?

html - 如何在 Ionic 3 中的个人资料图片下添加标签

css - 相对于具有绝对位置的下一个元素的元素

html - 无法将框对齐到同一行

PHP 到 MySQL 代码问题

javascript - 使用js按坐标点击

html - float div,如何使元素适合

html - 我在这个 CSS float 到列代码中的错误是什么