css - 4 个 float DIV,可在带有 CSS 的缩小屏幕上对称响应

标签 css responsive

[1][2][3][4]

我有四个 DIV 向左浮动(上方),使用简单的 CSS:float:left;宽度:128px;高度:128px

当我缩小屏幕时,最后一个 DIV 正确地跳到下一行:

[1][2][3]

[4]

但我真正想要的是将最后两个 block 跳到下一行以保持外观对称:

[1][2]

[3][4]

当屏幕进一步变窄时,方 block 会一个一个地堆叠起来:

[1]

[2]

[3]

[4]

最佳答案

这是一种使用媒体查询的方法。

诀窍是为 max-width 选择一个合适的断点,例如 610px,然后使用选择的 nth-child 每次清除 float 从第 3 个元素开始的第 3 个子元素。

引用: https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries

.box {
  float: left;
  width: 128px;
  height: 128px;
  background-color: grey;
  margin: 10px;
  box-sizing: border-box;
  border: 2px solid black;
}
.container-box {
  border: 1px dotted blue;
  overflow: auto;
  box-sizing: borderbox;
}
@media (max-width: 610px) {
  .box {
    background-color: yellow;
  }
  .box:nth-child(2n+3) {
    background-color: red;
    clear: left;
  }
}
<div class="container-box">
  <div class="box">1</div>
  <div class="box">2</div>
  <div class="box">3</div>
  <div class="box">4</div>
</div>

关于css - 4 个 float DIV,可在带有 CSS 的缩小屏幕上对称响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40119510/

相关文章:

css - 我如何更正我的响应式媒体查询?

html - 我无法在不破坏我的网站的情况下调整图像大小

css - Google 可视化 - 更改大小图例 AnnotationChart

javascript - 如何标记浏览器滚动条?

javascript - 响应式英雄图像作为背景

html - 中间有重叠的响应式方形图像

javascript - 自动将文本内容拆分为偶数列

javascript - 在响应式设计中将 3 个菜单合并为一个菜单

javascript - onmousedown 事件不是连续事件吗?

javascript - 在 fiddle 中完美运行但 JQuery 对网页没有影响