【问题标题】:many divs in a 3-column newspaper layout3 列报纸布局中的许多 div
【发布时间】:2017-08-28 00:43:07
【问题描述】:

目前我有许多未定义长度/高度的 div。它们包含一些超链接作为列表。 通过给这些 div float:left; width:150px; margin: 10px; 来实现几乎想要的效果 但是,在第一个 div 只包含 1 个链接的情况下,第二个 div 包含 10 我得到以下结果(数字代表 div):

1  2  5
   3  6
   4  7
8

想要的结果当然如下

1  3  6          1  4  7
2  4  7    or    2  5  8
   5  8          3  6

【问题讨论】:

  • 你有一些我们可以看到的 HTML 代码,也许是一个活生生的例子?

标签: css css-multicolumn-layout


【解决方案1】:

共有三种解决方案,每种都有各自的问题。

首先,您可以对所有项目设置高度限制,或使用固定高度。这与溢出属性相结合,将为您提供一个整洁的项目网格。

ul li {
    width: 200px;
    height: 200px;
    float: left;
    overflow: hidden;
}

或者,您可以将divs 拉入三个不同的容器中,每个容器单独浮动。这也将为您提供三列,但您可能需要在服务器端做一些事情以确保每列中元素的高度均匀分布:

ul {
    float: left;
    width: 200px;
}

最后,还有 CSS3 Column Module,它可以让您整齐轻松地创建列,但完全不支持 IE。

ul {
   -moz-column-count: 3;
   -webkit-column-count: 3;
   column-count: 3;
}

【讨论】:

  • 谢谢,我选择了重写 html 输出解决方案。在 php 中,我使用不带小数的除法来决定每个块将在哪一列。我真的希望有一种更简单的方法,一种在内容输出中与 wring 布局有更多距离的方法。我猜当前形式的 HTML 有其局限性 =]
  • @sentiao CSS3 Columns Module 应该可以解决这个问题,但是缺乏 IE 支持真的是在扼杀它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多