【发布时间】:2011-07-23 16:51:21
【问题描述】:
此代码/标记...
<ul id="tag-directory" class="clearfix">
<li py:for="tag in tags"><a href="${h.url_for(controller='/media', action='index', tag=tag.slug)}">${tag.name}</a> (${tag.media_count_published})</li>
</ul>
使用这种样式...
#tag-directory {
clear: both;
}
#tag-directory li {
width: 50%;
float: left;
}
在浏览器中按字母排序,例如...
A1 A2
A3 B1
B2 B3
B4 C1
C2 C3
但我想要的是……
A1 B3
A2 B4
A3 C1
B1 C2
B2 C3
我该怎么做?
入驻 Adam Wulf 的 JQuery 插件:Columnizer。
将 Wulf 的三个 .js 文件上传到服务器;那么……
HTML 文件头部的这个标记:
<head>
<script src="/scripts/third-party/jquery.js" type="text/javascript" ></script>
<script src="/scripts/third-party/autocolumn.js" type="text/javascript" charset="utf-8"></script>
<script>
$(function(){
$('.wide').columnize({width:360});
});
</script>
<style>
.wide {clear:both;}
</style>
</head>
还有正文中的这个标记:
<div class="wide"> <!--per styling in head -->
<ul id="tags" class="clearfix">
<li py:for="tag in tags"> <!-- Python code dynamically generating hyperlinked li elements -->
<a href="${h.url_for(controller='/linkedmedia', action='index', tag=tag.slug)}">${tag.name}</a> (${tag.linkedmedia_count_published})
</li>
</ul>
</div>
就是这样。可能可以压缩 Javascript 以加快页面的加载时间。 CSS3 在简单性方面更快、更快并且通常更优雅的解决方案,但是 Wulf 的 Javascript 是一种可以容忍的 hack,可以在 IE 上获得与现代浏览器中的 CSS3 相同的外观。 (IE 是多么痛苦……!)纯 CSS 解决方案不适用于动态生成的超链接 li 元素列表。下面发布的 IE8 中如何显示生成的 Columnizer 解决方案的屏幕截图...
【问题讨论】:
-
总是 2 列还是“n”列宽?
-
目前,只有 2 个......但如果“n”列可能还可以。只要它在页面上布局就可以了。