javascript - 用元素和一致的间距填充固定宽度的网格

标签 javascript html css

<分区>


想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post .

关闭 8 年前

我希望用最少的 css/js 来实现:

http://i847.photobucket.com/albums/ab39/twilson90/Symbol2_zps04edc281.png

我有一个空间需要用相同尺寸的正方形填充。 在这个特定的例子中,我有一个 270px 宽度的空间,需要包含多个 60px 宽度的框

我不能使用 margin-right/bottom,而且盒子必须完美

我该怎么做?

最佳答案

这是我的解决方案,用于一个 270 像素宽的盒子,里面装满了 60 像素宽的盒子。最下面一行的方框会展开以填满该行并且完美。调整边距和宽度以适合您的情况。

请注意,我的 HTML 包含 4 个表格以提供可视化示例。您显然只会使用一张 table 。

.table {
  display: table;
  width: 270px;
  background-color: lightblue;
}
.tr {
  display: table-row;
}
.td {
  float: left;
  background-color: cadetblue;
  width: 60px;
  height: 60px;
  margin-right: 10px;
  margin-bottom: 10px;
}

/* Remove margin on right edge and bottom edge */
.tr .td:last-of-type {
  margin-right: 0;
}
.tr:last-of-type .td {
  margin-bottom: 0;
}

/* This makes the last row of boxes fill the row */
.tr:last-of-type .td:nth-child(1):nth-last-child(1) {
  width: 270px;
}
.tr:last-of-type .td:nth-child(1):nth-last-child(2),
.tr:last-of-type .td:nth-child(2):nth-last-child(1) {
  width: 130px;
}
.tr:last-of-type .td:nth-child(1):nth-last-child(3),
.tr:last-of-type .td:nth-child(2):nth-last-child(2),
.tr:last-of-type .td:nth-child(3):nth-last-child(1) {
  width: 83.333333px;
}
<div class="table">
  <div class="tr">
    <div class="td">1</div>
    <div class="td">2</div>
    <div class="td">3</div>
    <div class="td">4</div>
  </div>
  <div class="tr">
    <div class="td">5</div>
    <div class="td">6</div>
    <div class="td">7</div>
    <div class="td">8</div>
  </div>
  <div class="tr">
    <div class="td">9</div>
  </div>
</div>
<br>
<br>
<div class="table">
  <div class="tr">
    <div class="td">1</div>
    <div class="td">2</div>
    <div class="td">3</div>
    <div class="td">4</div>
  </div>
  <div class="tr">
    <div class="td">5</div>
    <div class="td">6</div>
    <div class="td">7</div>
    <div class="td">8</div>
  </div>
  <div class="tr">
    <div class="td">9</div>
    <div class="td">10</div>
  </div>
</div>
<br>
<br>
<div class="table">
  <div class="tr">
    <div class="td">1</div>
    <div class="td">2</div>
    <div class="td">3</div>
    <div class="td">4</div>
  </div>
  <div class="tr">
    <div class="td">5</div>
    <div class="td">6</div>
    <div class="td">7</div>
    <div class="td">8</div>
  </div>
  <div class="tr">
    <div class="td">9</div>
    <div class="td">10</div>
    <div class="td">11</div>
  </div>
</div>
<br>
<br>
<div class="table">
  <div class="tr">
    <div class="td">1</div>
    <div class="td">2</div>
    <div class="td">3</div>
    <div class="td">4</div>
  </div>
  <div class="tr">
    <div class="td">5</div>
    <div class="td">6</div>
    <div class="td">7</div>
    <div class="td">8</div>
  </div>
  <div class="tr">
    <div class="td">9</div>
    <div class="td">10</div>
    <div class="td">11</div>
    <div class="td">12</div>
  </div>
</div>

关于javascript - 用元素和一致的间距填充固定宽度的网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27390374/

上一篇:html - 在屏幕上静态居中 div(无 JS)

下一篇:jquery - 如何防止 Bootstrap 删除我的样式?

相关文章:

html - 防止在 mozilla 中显示输入类型数字的非数字字符

Javascript + IMG 标签 = 内存泄漏。有一个更好的方法吗?

javascript - 如何在react js中监听另一个组件中的下拉值

JavaScript 数组长度问题

javascript - 如何让我的文本出现在我的 slider 顶部?

html - 使用 css3 更改容器高度/宽度时使图像大小动画化?

javascript - Ajaxify PushState 推送 CSS 文件?

javascript - 使用带有合并的通用更新模式输入元素时的 D3 V4 转换

html - 如何使 2 个按钮引用单独的模态形式?

html - 如何在 HTML 中显示视频/mp2t?