首页 > 开发 > CSS > 正文

用css实现表格外观的无序列表

2024-07-11 08:22:11
字体:
来源:转载
供稿:网友
  • 参与测试的浏览器:ie6 / ie7 / ie8 / ff3 / op9.6 / sf3 / chrome2
  • 操作系统:windows
  • 特别提示:这不是表格的模拟。表格无论在语义、结构,还是在效果实现上,都是无法替代的。本文只针对无序列表在外观方面的一个特殊需求

别看有的东东长得个表格样,其实是披着表格皮的无序列表,为了伟大的语义,我们需要用css实现表格外观的无序列表。

个人喜好,这里采用border和negative margin来实现,非常简单:

运行代码框

[ctrl+a 全部选择 提示:你可先修改部分代码,再按运行]

这是一个最简单的模型,然而,实战总是残酷的:

  1. 宽度如何自适应分辨率?
  2. 单元格内容过多、形成换行如何处理?
  3. 最纠结的问题:5×4的表格,如果只有17条数据怎么办?empty-cell也黯然失色…

问题1:宽度如何自适应分辨率?
这个问题也许有人说没必要,但是在模块化设计时,几乎任何部件都被要求设置为宽度自适应模式的。

解决1:参考完美的firefox3和ie8百分比宽度处理方案,给剩余的宽度分配给某个“列”,就行了 ^-^
记得二列等高的笨办法吗?——用背景图片模拟。

问题2:单元格内容过多、形成换行如何处理?

解决2:隐藏吧,它已经没有存在的价值了!( - -! 其实是我想不出别的办法来了)
但为了体验好一点,我加上了text-overflow。这个,ff暂时不支持……aoao有好的解决办法,我也有次点的解决办法。

运行代码框

[ctrl+a 全部选择 提示:你可先修改部分代码,再按运行]

|||

问题3:5×4的表格,如果只有17条数据怎么办?empty-cell也黯然失色…
看这个demo,其实我觉得这个样子不影响阅读,也不难看了,可boss和他的money不乐意。

运行代码框

[ctrl+a 全部选择 提示:你可先修改部分代码,再按运行]

解决3
首先让我们制造出我们想要的表格(很遗憾,制造了很多空标签,暂时没有找到更合适的纯css解决方案,欢迎大家多多指点)。

运行代码框

[ctrl+a 全部选择 提示:你可先修改部分代码,再按运行]

然后用position:relative实现css移魂大法:

运行代码框

[ctrl+a 全部选择 提示:你可先修改部分代码,再按运行]

|||

最后让我们隐藏多余的那一行:

运行代码框

[ctrl+a 全部选择 提示:你可先修改部分代码,再按运行]

解决3很抽搐,在birdstudio的帮助下找到了新的方法,这方法不用加空标签。

原理单用文字描述太复杂了,也不能描述得很清楚,自己看源码吧,关键在li的高度与margin的设置上,多余的部分也隐藏了。

运行代码框

[ctrl+a 全部选择 提示:你可先修改部分代码,再按运行]

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表