html - 将 FlexBox Div 并排放置

标签 html css

我遇到过 float 元素彼此相邻的问题,因为如果一个元素大于它会创建一个巨大的空间并且对于我正在制作的网站来说非常违反直觉,因为新内容会经常添加。

我做了一些研究,发现我应该使用 flexbox 来对齐元素,所以无论元素有多大,它都不会像 float 元素那样。一开始效果很好,但后来我遇到了无法将这些元素彼此相邻放置的问题。我基本上是在寻找一种使这些 div 彼此相邻 float 的方法,但我已经实现的 flexbox 命令仍然有效。如果我使用 display: Inline,它看起来好像有效,但 div 是水平的而不是垂直的。我将在下面向您展示示例代码:

  .container {
  width: 80%;
  margin: 5% 10% 5% 8%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.item {
  width: 29%;
  border: 10px solid #edb809;
  float: left;
  background-color: #ffffff;
  margin-bottom: 5%;
  min-height: 30%;
<div class="container">
  <div class="item" style="margin-left: 2%;">
    <p> test </p>
  </div>
  <div class="item" style="margin-left: 2%;">
    <p> test </p>
  </div>
  <div class="item" style="margin-left: 2%;">
    <p> test </p>
  </div>
</div>
<div class="container">
  <div class="item" style="margin-left: 2%;">
    <p> test </p>
  </div>
  <div class="item" style="margin-left: 2%;">
    <p> test </p>
  </div>
  <div class="item" style="margin-left: 2%;">
    <p> test </p>
  </div>
</div>
<div class="container">
  <div class="item" style="margin-left: 2%;">
    <p> test </p>
  </div>
  <div class="item" style="margin-left: 2%;">
    <p> test </p>
  </div>
  <div class="item" style="margin-left: 2%;">
    <p> test </p>
  </div>
</div>

最佳答案

我意识到你想水平放置容器,所以我认为你需要这样的东西:

.wrapper {
  display: flex;
}

.container {
  flex: 1;
  margin: 5% 10% 5% 8%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.item {
  border: 10px solid #edb809;
  background-color: #ffffff;
  margin-bottom: 5%;
  min-height: 30%;
}
<div class="wrapper">
  <div class="container">
    <div class="item" style="margin-left: 2%;">
      <p> test1 </p>
    </div>
    <div class="item" style="margin-left: 2%;">
      <p> test1 </p>
    </div>
    <div class="item" style="margin-left: 2%;">
      <p> test1 </p>
    </div>
  </div>
  <div class="container">
    <div class="item" style="margin-left: 2%;">
      <p> test2 </p>
    </div>
    <div class="item" style="margin-left: 2%;">
      <p> test2 </p>
    </div>
    <div class="item" style="margin-left: 2%;">
      <p> test2 </p>
    </div>
  </div>
  <div class="container">
    <div class="item" style="margin-left: 2%;">
      <p> test3 </p>
    </div>
    <div class="item" style="margin-left: 2%;">
      <p> test </p>
    </div>
    <div class="item" style="margin-left: 2%;">
      <p> test3 </p>
    </div>
  </div>
</div>

关于html - 将 FlexBox Div 并排放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51446157/

相关文章:

javascript - 汉堡下拉菜单打不开

javascript - 在 knockout viewmodel 页面中手动触发其他 DOM 元素的点击事件

javascript - 使用 webcomponenetsjs 的 HTMLImports 以意外的执行顺序加载导入 - firefox

html - 固定页眉、可滚动内容、固定页脚布局

google-chrome - Chrome Border-Radius 和 Opacity 存在错误?

html - 缩放图像并在悬停时添加文本叠加

html - 如何防止在 HTML 元素的新行中只有一个悬词?

css - 为什么嵌入的样式与具有相同样式的链接 CSS 文件呈现不同?

javascript - JavaScript 中的换行符?

CSS 边框旋转