list - 多列 CSS 列表

标签 list css

有没有办法只使用有效的 CSS 制作可重排多列列表,其中列表可以包含不同高度的列表项?可重新流动是指当用户将窗口拖动得更宽或更窄时,当列表项的宽度固定时,列数应自动调整。

我看过关于 A List Apart 的文章,但他们的解决方案都不符合所有这些(看似简单的)要求。乍一看,我认为针对多列列表的 CCS3 提案也没有(因为看起来您必须指定列数)。

如果有帮助,我根本不关心 IE6,只关心 IE7。我的目标受众是早期采用者、精通网络的类型。

更新:仔细查看 CSS3 规范,指定列宽应该这样做,但实际上,我遇到了溢出等问题。有人在 IRL 使用这个东西吗?

最佳答案

原帖

事实上,单个命令就可以解决问题(尽管它出现在 -webkit--moz- 版本中):

div.wrapper 
{
    -webkit-column-width: 10em;
    -moz-column-width: 10em;
}

这里有一些额外的规则来提高可读性。将下面和上面的代码插入 A List Apart 文章的示例中(如果有人清除版权,我可以粘贴整个 HTML)并享受:

div.wrapper {       
    border: 2px solid blue;
    -webkit-column-rule: 2px solid blue;
    -moz-column-rule: 2px solid blue;
}

.wrapper ol {
    margin: 0;
}

.wrapper br {
    display: none; /* Extra BR is unnecessary there */
}

已测试:Safari 4 (4528.17)、Fx 3.5b4/Mac。

注意 前段时间第一次遇到column-width 属性时,我完全忽略了它进行再平衡这一关键事实。现在在 W3C 发现它并用 Surfin' Safari 确认.

附录:固定列数

据我了解,列的宽度应该随着页面的宽度而变化,所以命令更像是

div.wrapper 
{
    -webkit-column-count: 3;
    -moz-column-count: 3;
}

附录:垂直滚动

现在你说应该有一个垂直滚动条。由于没有 UI 可以在每一列的右侧做单独的滚动条,我想你已经想到了一个可以滚动整个多列列表的滚动条。这可以通过用

包装一个 div 来完成
div.morewrap 
{
     height: 50%; /* whatever you need */
     overflow-y: scroll; 
}

关于list - 多列 CSS 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/933645/

相关文章:

list - 在 Haskell 中加入列表

css - 替换 li 背景图像

javascript - RemoveClass 和 AddClass 不起作用

html - 为第一个元素创建顶部边距的好方法

html - 使用 CSS 使仪表板框标题加粗

Jquery - 根据组合框选择将项目从一个列表移动到另一个列表

list - F# 中反转列表的列表

r - 查找(并返回)满足(逻辑)测试的列表的第一个元素

php - Bootstrap 按钮输入组无法使用 <form> 标签正确显示

javascript - 您如何使用 HTML5 标签,同时为本身不识别未知元素的无脚本客户端支持渐进增强?