html - 仅使用 CSS3/HTML5 的行中的响应式等高列

标签 html css mobile responsive-design grid

我想使用 div 创建响应式表格布局,以在仅移动设备 上显示,其中元素相等每行的高度仅使用 CSS/CSS3 而不是 JavaScript,也不是 jQuery 或插件

我找到了一个工作示例,使用 JS:这里是 CODEPEN live example .

我进行了研究,但我没有找到任何仅使用纯 CSS/CSS3/HTML5(例如 flexbox) 的工作示例。

最好的是只有 float 的 div,没有 hack CSS 代码:布局应该有不同的列号,根据不同的设备尺寸,像下面的截图一样响应式工作:

移动布局

Mobile layout

平板电脑布局

Tablet Layout

桌面布局

Desktop Layout

最佳答案

使用 flexboxesmedia queries 的解决方案: http://jsfiddle.net/szxmw7ko/4/

#container{
  display: flex;

  align-items: stretch;
  flex-wrap: wrap;
} 


@media (max-width: 480px) {
    #container div {
        max-width: 98%;
    }
}
@media (min-width: 480px) and (max-width: 1080px) {
    #container div {
        max-width: 48%;
    }
}
@media (min-width: 1080px) {
    #container div {
        max-width: 23%;
    }
}

align-items: stretch 告诉 flex 元素填充 cross axis 上的可用空间.这就是允许所有元素具有相等高度的原因。

flex-wrap: wrap 提供了制作多行 flex 流的可能性。否则,所有元素都被监禁在一行中。

max-width: XX% 默认情况下, block 元素将填充所有可用空间。即使元素是 flex 布局的子元素,由于 flex-wrap 规则解除了将所有元素堆叠在一行中的限制,它们也会拉伸(stretch)到容器的整个宽度。 因此,设置一个最大宽度(一定会提高)可以控制您想要在一行中放置多少个元素。

@media (max-width: XX%) 最后,您只需调整元素的宽度即可根据大小定义所需的列数视口(viewport)。

Flexbox 资源:
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
https://css-tricks.com/almanac/properties/f/flex-wrap/

关于html - 仅使用 CSS3/HTML5 的行中的响应式等高列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29587980/

相关文章:

html - 使图像在单击时打开模态?

Jquery fadeIn 在 Chrome 中滞后

css - 在输入元素 Ionic 的中间垂直对齐 float 标签

html - CSS 边框问题 : failing to render left border

html - 输入字段文本,仅在 IOS 上更改样式

javascript - 传递变量 PHP、Javascript location.reload 和 HTML 输入

html - 在 css 中切掉边框 Angular 的最佳方法

html - 尽管使用了表格和表格单元格,但图像并未垂直居中

java - OpenSMPP 的文档在哪里?

java - Java移动应用程序的地理位置?