html - 先垂直对齐 div 元素,再水平对齐下一列

标签 html css

如何垂直对齐元素然后溢出到下一列(比如在 20 行之后)并垂直对齐剩余元素。要显示的列数应取决于屏幕的宽度。随着浏览器宽度的减小,列数应减少,行高应增加。

下面给出的 HTML 将元素彼此水平对齐,然后溢出到下一行。我想做另一种方式,它应该在第一列中垂直添加元素,在添加 n 个元素后,它应该移动到下一列并填充行并移动到下一个。

当前的 HTML 代码。

<!DOCTYPE html>
<html>

<head>
    <title>
        Title
    </title>
    </head>

<style>
.column {

    float: left;

}
</style>
<body >
<div style=" overflow: hidden; width: 80%;">

                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 0
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 1
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 2
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 3
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 4
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 5
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 6
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 7
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 8
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 9
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 10
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 11
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 12
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 13
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 14
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 15
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 16
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 17
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 18
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 19
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 20
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 21
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 22
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 23
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 24
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 25
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 26
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 27
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 28
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 29
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 30
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 31
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 32
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 33
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 34
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 35
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 36
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 37
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 38
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 39
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 40
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 41
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 42
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 43
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 44
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 45
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 46
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 47
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 48
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 49
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 50
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 51
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 52
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 53
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 54
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 55
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 56
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 57
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 58
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 59
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 60
					                         </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 61
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 62
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 63
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 64
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 65
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 66
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 67
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 68
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 69
					                          </div>
					                      </div>
					                      <div class="column" style="margin-top: 1em; ">
					                          <div style="width: 15em;  padding-right: 0.5em;">Box 70
					                          </div>
					                      </div>


                </body>

</html>

当前输出和预期输出如下所列。在 html 代码片段中,列数根据浏览器的宽度动态变化。 enter image description here

最佳答案

但是我清理了代码,用一行代码替换了重复的 DIV 和 CSS 代码,以控制元素之间的填充和间距,您可以从一个地方更改值。

.column-container {
  column-width: 15rem; /* width of each column */
  column-gap: 1rem; /* increase gap between each column */
  width: 80%;
}

.column-container .column {
  margin-bottom: 1rem;
}
  <div class="column-container">
    <div class="column">Box </div>
    <div class="column">Box 1</div>
    <div class="column">Box 2</div>
    <div class="column">Box 3</div>
    <div class="column">Box 4</div>
    <div class="column">Box 5</div>
    <div class="column">Box 6</div>
    <div class="column">Box 7</div>
    <div class="column">Box 8</div>
    <div class="column">Box 9</div>
    <div class="column">Box 10</div>
    <div class="column">Box 12</div>
    <div class="column">Box 13</div>
    <div class="column">Box 14</div>
    <div class="column">Box 15</div>
    <div class="column">Box 16</div>
    <div class="column">Box 17</div>
    <div class="column">Box 18</div>
    <div class="column">Box 19</div>
    <div class="column">Box 20</div>
    <div class="column">Box 21</div>
    <div class="column">Box 22</div>
    <div class="column">Box 23</div>
    <div class="column">Box 24</div>
    <div class="column">Box 25</div>
    <div class="column">Box 26</div>
    <div class="column">Box 27</div>
    <div class="column">Box 28</div>
    <div class="column">Box 29</div>
    <div class="column">Box 30</div>
    <div class="column">Box 31</div>
    <div class="column">Box 32</div>
    <div class="column">Box 33</div>
    <div class="column">Box 34</div>
    <div class="column">Box 35</div>
    <div class="column">Box 36</div>
    <div class="column">Box 37</div>
    <div class="column">Box 38</div>
    <div class="column">Box 39</div>
    <div class="column">Box 40</div>
    <div class="column">Box 41</div>
    <div class="column">Box 42</div>
    <div class="column">Box 43</div>
    <div class="column">Box 44</div>
    <div class="column">Box 45</div>
    <div class="column">Box 46</div>
    <div class="column">Box 47</div>
    <div class="column">Box 48</div>
    <div class="column">Box 49</div>
    <div class="column">Box 50</div>
    <div class="column">Box 51</div>
    <div class="column">Box 52</div>
    <div class="column">Box 53</div>
    <div class="column">Box 54</div>
    <div class="column">Box 55</div>
    <div class="column">Box 56</div>
    <div class="column">Box 57</div>
    <div class="column">Box 58</div>
    <div class="column">Box 59</div>
    <div class="column">Box 60</div>
    <div class="column">Box 61</div>
    <div class="column">Box 62</div>
    <div class="column">Box 63</div>
    <div class="column">Box 64</div>
    <div class="column">Box 65</div>
    <div class="column">Box 66</div>
    <div class="column">Box 67</div>
    <div class="column">Box 68</div>
    <div class="column">Box 69</div>
    <div class="column">Box 70</div>
  </div>

关于html - 先垂直对齐 div 元素,再水平对齐下一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59202281/

相关文章:

css - 如何使两个 div 适合所需的宽度并避免环绕和重叠?

javascript - 使用 EaselJS 围绕 Canvas 构建坐标系

html - 无法截断宽度为 100% 的文本

html - 如何使一个 div 每行包含两个显示单元格子 div?

javascript - 如何使用单选按钮更改文本大小 - JQuery Mobile

javascript - 使用javascript设置图像不透明度

css - 单品星级评价失位

css - 悬停 <button> 标签时如何让光标变为手形

像 Stack Overflow 这样的 HTML 编辑器

Javafx 2.0 Applet安全提示时,如何自定义空Applet区域的背景?