【发布时间】:2011-04-18 17:11:22
【问题描述】:
我正在尝试创建一个表格布局,其中包含左侧的标题和水平对齐的字段。 (请参阅下面的模型。)我正在尝试使用 DataList 来实现这一点——坚持使用 .NET 2.0——并包裹在 x 轴上有滚动条的 div 中,这样如果有足够多的组可见,则滚动栏将出现。
Group One Group Two Group Three
Header One Value Value Value
Header Two Value Value Value
Header Three Value Value Value
我正在努力解决两点问题,这两个点都可以在下面的代码和 jsFiddle 中看到。
- 如何在不明确定义#wrapper 宽度的情况下将#itm 块保持在一行中?
- white-space: nowrap on #wrapper 在这里有效。
- 如何在行上保持一致的高度,即使数据应该垂直扩展其父 DIV?
- 在给定近似字段长度的情况下,设置显式高度对我有用。
jsFiddle 原文:http://jsfiddle.net/D6yXV/1/
已更新修复:http://jsfiddle.net/D6yXV/7/
HTML:
<div id="hdr">
<label>Header One</label>
<label>Header Two</label>
<label class="highlight">Header Three</label>
<label>Header Four</label>
</div>
<div id="itm">
<span>Some Data</span>
<span>More Data</span>
<span class="highlight">Even More Data</span>
<span>No More Data</span>
</div>
<div id="itm">
<span>Some Data</span>
<span>More Data</span>
<span class="highlight">Actually, this is a large field and could stretch the row out some.</span>
<span>Even More Data</span>
</div>
<div id="itm">
<span>Some Data</span>
<span>More Data</span>
<span class="highlight">Even More Data</span>
<span>No More Data</span>
</div>
</div>
CSS:
#wrapper { overflow-x: auto; }
#hdr, #itm { display: inline-block; padding: 3px; width: 150px; }
#itm { border-left: solid 1px #000; }
#hdr label { font-weight: 700; display: block; }
#itm span { display: block; }
.highlight { background-color: #EEE; }
【问题讨论】:
-
为什么不为此使用表格,因为这正是表格的好处所在?
-
我想我可以将 DataList 包装在一个表格中,并在标题和项目模板中创建 td 标记。
-
Per Dustin,这对于基本上是“表格”数据的内容来说是明智的做法 :)
-
如果您不需要
datalist的附加功能,那么我建议使用中继器。最后更干净一点,IMO。 -
再想一想,如果我要使用表格,我将如何使用数据绑定控件创建该布局?我认为您需要让每个数据项成为表格行,这使我无法使用“数据项作为列”布局。
标签: asp.net html css .net-2.0 datalist