javascript - 响应式网格问题

标签 javascript html css

我正在处理此处描述的任务 - Flexible Grid

任务是创建一个随窗口大小变化而变化的 1X4 网格。

如果窗口大小小于 720px 那么它应该变成 2X2 网格。 如果窗口大小小于 360px,那么它应该变成 4X1 网格。

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  padding: 5px;
}

.test {
  border: 1px solid #000;
  border-bottom: 0;
  border-right: 0;
  border-collapse: collapse;
}

.test .test__col {
  display: table-cell;
  width: 100%;
  min-height: 100px;
  border-bottom: 1px solid #000;
  border-right: 1px solid #000;
}

@media screen and (min-width: 360px) {
  .test .test__col {
    float: left;
    width: 100%;
  }
}

@media screen and (min-width: 720px) {
  .test .test__col {
    width: 50%;
  }
}
<div class="test">
  <div class="test__col"></div>
  <div class="test__col"></div>
  <div class="test__col"></div>
  <div class="test__col"></div>
</div>

如果我在我的 Mozilla 浏览器中将尺寸设置为 768X1024 和 360X640,代码可以正常工作。如果我将其更改为 320X480,则无法加载 4X1 尺寸。我在输出中看到以下内容。

enter image description here

我该如何解决这个问题?

最佳答案

这是使用 flexbox 布局的替代方案。

问题是您需要在媒体查询中使用 max 并更正顺序。 360px 需要在末尾删除 720px 因为两者在 360px 下都有效(当然这不是唯一的方法组织媒体查询,但我认为这是最简单的)

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  padding: 5px;
}

.test {
  border: 1px solid #000;
  border-bottom: 0;
  border-right: 0;
  border-collapse: collapse;
  display:flex;
  flex-wrap:wrap;
}

.test .test__col {
  flex:1;
  min-height: 100px;
  border-bottom: 1px solid #000;
  border-right: 1px solid #000;
}

@media screen and (max-width: 720px) {
  .test .test__col {
    flex:0 0 50%;
  }
}

@media screen and (max-width: 360px) {
  .test .test__col {
    flex:0 0 100%;
  }
}
<div class="test">
  <div class="test__col"></div>
  <div class="test__col"></div>
  <div class="test__col"></div>
  <div class="test__col"></div>
</div>

关于javascript - 响应式网格问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47900688/

相关文章:

javascript - Bootstrap 导航栏折叠切换按钮未单击

javascript - 即时替换 css 文件(并将新样式应用于页面)

javascript - 使用 Javascript 在 Socket IO 和 NodeJS 中查找数组中的对象

html - Firefox 和 Chrome 的不同背景位置

javascript - 单击按钮时使用 JavaScript 或 JQuery 向下滚动

html - 表中两行之间的空间?

javascript - 坚持将二进制数据更改为 base64 (Gridfs-stream)

javascript - 有没有类似Math的库支持JavaScript BigInt?

javascript - Bootstrap Accordion - 如果点击打开的面板,不要折叠

html - 文本对齐问题