【发布时间】:2014-07-10 15:00:14
【问题描述】:
我正在尝试突破 CSS 的限制,以复制打印中常见的网格布局。
要求:
- 块之间以及块与容器边缘之间的边距必须相等。
- 布局必须是响应式的,每行的块数必须适应窗口的大小。
- 最后一行必须左对齐
- 块的宽度/高度是固定的
- 不使用空的非语义 HTML 元素
- 纯CSS解决方案,无JS
所以,我有如下标记:
<ul>
<li>
<img src="thumbnail.jpg">
<span>Introduction and Curriculum</span>
</li>
<li>
<img src="thumbnail.jpg">
<span>Equipment and Workspace Prep</span>
</li>
...
</ul>
这是我要实现的目标的模型。
【问题讨论】:
-
这是您想要实现的布局吗? jsfiddle.net/webtiki/KrA6M
-
某种?这是我想要的交互式版本。 codepen.io/norbauer/pen/bLCpa 不幸的是,它使用了需要插入空的
<li>元素的 hack,我需要避免这种情况。我正在考虑通过 JS 插入它们,但我首先想知道我所提议的是否可以通过更传统的 CSS 实现。 JSFiddle 中提出的代码更加迟钝。 :) (尽管它至少具有不使用 DOM 的优势。) -
您是否已经尝试过使用浮动和
nth-child进行清算+保证金修正?这些可以在不同的断点处更改。 -
浮动和修复是我想要避免的事情(我认为浮动仅适用于文本块内的浮动图像,而不是更大规模的布局。)我也许应该澄清一下我的观点问题是看看 CSS 中是否有适当的优雅方法。我不关心只是完成它,因为我知道一些简单的技巧(例如添加具有特定宽度的虚拟空列表项并使用 flexbox。)我只是想在这里学习 CSS 最佳实践。
-
您还可以查看以下 2 个答案以了解具有严格要求的网格:stackoverflow.com/a/23803215/1811992 和 stackoverflow.com/a/20457076/1811992
标签: html responsive-design grid-layout css