【发布时间】:2011-03-04 10:49:13
【问题描述】:
我只想使用<div> 标签和 CSS 创建表格。
这是我的示例表。
<body>
<form id="form1">
<div class="divTable">
<div class="headRow">
<div class="divCell" align="center">Customer ID</div>
<div class="divCell">Customer Name</div>
<div class="divCell">Customer Address</div>
</div>
<div class="divRow">
<div class="divCell">001</div>
<div class="divCell">002</div>
<div class="divCell">003</div>
</div>
<div class="divRow">
<div class="divCell">xxx</div>
<div class="divCell">yyy</div>
<div class="divCell">www</div>
</div>
<div class="divRow">
<div class="divCell">ttt</div>
<div class="divCell">uuu</div>
<div class="divCell">Mkkk</div>
</div>
</div>
</form>
</body>
和风格:
<style type="text/css">
.divTable
{
display: table;
width:auto;
background-color:#eee;
border:1px solid #666666;
border-spacing:5px;/*cellspacing:poor IE support for this*/
/* border-collapse:separate;*/
}
.divRow
{
display:table-row;
width:auto;
}
.divCell
{
float:left;/*fix for buggy browsers*/
display:table-column;
width:200px;
background-color:#ccc;
}
</style>
但此表不适用于 IE7 及以下版本。请为我提供您的解决方案和想法。 谢谢。
【问题讨论】:
-
为什么要用
div建表? -
您可能需要注意的一件事是您的 class="headRow" 在 CSS 中定义为 .divRow。只是想我会指出这一点。
-
我认为任何人想要使用基于 div 的表而不是普通表的原因是......基于 div 的表上的渲染/动画/重排实际上更快(尤其是对于大型 DOM大小)而不是渲染一个普通的表格......见这个......stubbornella.org/content/2009/03/27/…这个......developer.nokia.com/community/wiki/…上面所有的数据密集型javascript插件如slickgrid等都使用divBasedtable
-
只是一个小修正:
display:table-column应该用来模仿<col>标签,模仿<td>使用display: table-cell -
另一个更正:如果您的表格不适合屏幕,那么您的单元格将换行。原因:
float: left是罪魁祸首。另见:stackoverflow.com/questions/30001848/…