css - 水平显示图像

标签 css

我正在阅读“使用 D3.js 构建数据可视化”一书,根据该书,以下代码应该在一行中显示至少 3 个图像。然而,我的代码显示所有东西都垂直堆叠在一起。我缺少的是书中没有教的内容。

var flowers = [{
  "name": "Hydrangia",
  "latin": "Hydrangea",
  "light": "Sun",
  "ease": 3
}, {
  "name": "Chrysanthemum",
  "latin": "Chrysanthemum",
  "light": "Part Sun",
  "ease": 1
}, {
  "name": "Peony",
  "latin": "Paeonia",
  "light": "Part Sun",
  "ease": -1
}, {
  "name": "Orchid",
  "latin": "Paeonia",
  "light": "Shade",
  "ease": -5
}, {
  "name": "Fern",
  "latin": "Dryopteris",
  "light": "Shade",
  "ease": 5
}];

// Part 1
// Creating elements
var div = d3.select("div#content")
  .selectAll("div")
  .data(flowers)
  .enter().append("div").attr("class", "flowers");
body {
  font-size: 16px;
  line-height: 1.5em;
  color: #333333;
  font-family: 'Helvetica Neue', Helvetica, sans-serif;
}

div#content {
  margin: auto;
  width: 800px;
}

div#content > h1 {
  margin: 20px;
  text-align: center;
}

div#content > div.flower > * {
  margin: 0;
}

div#content div.flower {
  display: inline-block;
  padding: 15px 20px;
  margin: 10px;
  vertical-align: top;
}

div#content div.flower > img {
  width: 200px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<div id="content">
  <h1>My Favorite Flowers</h1>
  <div class="flowers">
    <h2>Hydrangia</h2>
    <p><i>Hydrangea</i></p>
    <img src="img/hydrangia.jpg" />
    <p>Sun</p>
  </div>
  <div class="flowers">
    <h2>Hydrangia</h2>
    <p><i>Hydrangea</i></p>
    <img src="img/hydrangia.jpg" />
    <p>Sun</p>
  </div>
  <div class="flowers">
    <h2>Hydrangia</h2>
    <p><i>Hydrangea</i></p>
    <img src="img/hydrangia.jpg" />
    <p>Sun</p>
  </div>
  <div class="flowers">
    <h2>Hydrangia</h2>
    <p><i>Hydrangea</i></p>
    <img src="img/hydrangia.jpg" />
    <p>Sun</p>
  </div>
  <div class="flowers">
    <h2>Hydrangia</h2>
    <p><i>Hydrangea</i></p>
    <img src="img/hydrangia.jpg" />
    <p>Sun</p>
  </div>
</div>

最佳答案

您只需声明此样式即可:

.flowers {
  display: inline-block;
}

所有的 block 都将排在一行中(如果可用空间足够的话):

var flowers = [
          {
            "name": "Hydrangia",
            "latin": "Hydrangea",
            "light": "Sun",
            "ease": 3
          },
          {
            "name": "Chrysanthemum",
            "latin": "Chrysanthemum",
            "light": "Part Sun",
            "ease": 1
          },
          {
            "name": "Peony",
            "latin": "Paeonia",
            "light": "Part Sun",
            "ease": -1
          },
          {
            "name": "Orchid",
            "latin": "Paeonia",
            "light": "Shade",
            "ease": -5
          },
          {
            "name": "Fern",
            "latin": "Dryopteris",
            "light": "Shade",
            "ease": 5
          }
        ];

        // Part 1
        // Creating elements
        var div = d3.select("div#content")
            .selectAll("div")
            .data(flowers)
            .enter().append("div").attr("class", "flowers");
        body {
            font-size: 16px;
            line-height: 1.5em;
            color: #333333;
            font-family: 'Helvetica Neue',Helvetica,sans-serif;
        }
        div#content {
            margin: auto;
            width: 800px;
        }
        div#content > h1 {
            margin: 20px;
            text-align: center;
        }
        div#content > div.flower > * {
            margin: 0;
        }
        div#content > div.flower {
            display: inline-block;
            padding: 15px 20px;
            margin: 10px;
            vertical-align: top;
        }
        div#content div.flower > img {
            width: 200px;
        }
        
        img {
          width: 100px;
          height: auto;
        }
        
        .flowers {
          display: inline-block;
        }
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<div id="content">
      <h1>My Favorite Flowers</h1>
      <div class="flowers">
        <h2>Hydrangia</h2>
        <p><i>Hydrangea</i></p>
        <img src="https://www.almanac.com/sites/default/files/image_nodes/hydrangea-1715775_640_copy.jpg"/>
        <p>Sun</p>
      </div>
          <div class="flowers">
        <h2>Hydrangia</h2>
        <p><i>Hydrangea</i></p>
        <img src="https://www.almanac.com/sites/default/files/image_nodes/hydrangea-1715775_640_copy.jpg"/>
        <p>Sun</p>
      </div>
          <div class="flowers">
        <h2>Hydrangia</h2>
        <p><i>Hydrangea</i></p>
        <img src="https://www.almanac.com/sites/default/files/image_nodes/hydrangea-1715775_640_copy.jpg"/>
        <p>Sun</p>
      </div>
          <div class="flowers">
        <h2>Hydrangia</h2>
        <p><i>Hydrangea</i></p>
        <img src="https://www.almanac.com/sites/default/files/image_nodes/hydrangea-1715775_640_copy.jpg"/>
        <p>Sun</p>
      </div>
          <div class="flowers">
        <h2>Hydrangia</h2>
        <p><i>Hydrangea</i></p>
        <img src="https://www.almanac.com/sites/default/files/image_nodes/hydrangea-1715775_640_copy.jpg"/>
        <p>Sun</p>
      </div>
    </div>

关于css - 水平显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48298089/

相关文章:

jquery - DIV 标签高度不会拉伸(stretch)以填充父空间

css - 仅使用 css 获得堆叠元素框阴影效果?

html - 删除表中两个 td 元素之间的空间

php - 基于变量值的颜色表行

css - 如何用css3混淆背景?

javascript - 尝试使用 jquery 显示/隐藏元素时遇到问题

javascript - 如何制作显示文字云的模态弹出窗口?

html5 : how can i trigger or stop a css3 loop animation?

css - SCSS 对 VS 代码的自动建议

php - 评论表单 'success' 消息转到页面顶部但被固定标题隐藏