我想只使用<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>
Run Code Online (Sandbox Code Playgroud)
风格:
<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>
Run Code Online (Sandbox Code Playgroud)
但这个表不适用于IE7及以下版本.请给我你的解决方案和想法.谢谢.
Shi*_*lly 250
.div-table {
display: table;
width: auto;
background-color: #eee;
border: 1px solid #666666;
border-spacing: 5px; /* cellspacing:poor IE support for this */
}
.div-table-row {
display: table-row;
width: auto;
clear: both;
}
.div-table-col {
float: left; /* fix for buggy browsers */
display: table-column;
width: 200px;
background-color: #ccc;
}
Run Code Online (Sandbox Code Playgroud)
Runnable片段:
.div-table {
display: table;
width: auto;
background-color: #eee;
border: 1px solid #666666;
border-spacing: 5px; /* cellspacing:poor IE support for this */
}
.div-table-row {
display: table-row;
width: auto;
clear: both;
}
.div-table-col {
float: left; /* fix for buggy browsers */
display: table-column;
width: 200px;
background-color: #ccc;
}
Run Code Online (Sandbox Code Playgroud)
<body>
<form id="form1">
<div class="div-table">
<div class="div-table-row">
<div class="div-table-col" align="center">Customer ID</div>
<div class="div-table-col">Customer Name</div>
<div class="div-table-col">Customer Address</div>
</div>
<div class="div-table-row">
<div class="div-table-col">001</div>
<div class="div-table-col">002</div>
<div class="div-table-col">003</div>
</div>
<div class="div-table-row">
<div class="div-table-col">xxx</div>
<div class="div-table-col">yyy</div>
<div class="div-table-col">www</div>
</div>
<div class="div-table-row">
<div class="div-table-col">ttt</div>
<div class="div-table-col">uuu</div>
<div class="div-table-col">Mkkk</div>
</div>
</div>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
Kob*_*obi 97
div
s不应用于表格数据.这与使用表格进行布局一样错误.
用一个<table>
.它简单,语义正确,你将在5分钟内完成.
小智 11
它对我有用,并且有助于创建响应式表格,有关更多信息,请访问此网站:https ://wisdmlabs.com/blog/responsive-tables-using-css-div-tag/
#resp-table {
width: 100%;
display: table;
}
#resp-table-body{
display: table-row-group;
}
.resp-table-row{
display: table-row;
}
.table-body-cell{
display: table-cell;
border: 1px solid #dddddd;
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
}
Run Code Online (Sandbox Code Playgroud)
<div id="resp-table">
<div id="resp-table-body">
<div class="resp-table-row">
<div class="table-body-cell">
col 1
</div>
<div class="table-body-cell">
col 2
</div>
<div class="table-body-cell">
col 3
</div>
<div class="table-body-cell">
col 4
</div>
</div>
<div class="resp-table-row">
<div class="table-body-cell">
second row col 1
</div>
<div class="table-body-cell">
second row col 2
</div>
<div class="table-body-cell">
second row col 3
</div>
<div class="table-body-cell">
second row col 4
</div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是一个老线程,但我想我应该发布我的解决方案.我最近遇到了同样的问题,我解决它的方法是遵循下面概述的三步法,这很简单,没有任何复杂的CSS.
(注意:当然,对于现代浏览器,使用table或table-row或table-cell的值来显示CSS属性可以解决问题.但是我使用的方法在现代和旧版浏览器中同样有效,因为它没有使用这些值来显示CSS属性.)
三步简单方法
对于仅包含div的表,以便像在表元素中一样获取单元格和行,请使用以下方法.
.table
类).row
类).cell
类).table {display:block; }
.row { display:block;}
.cell {display:inline-block;}
Run Code Online (Sandbox Code Playgroud)
<h2>Table below using table element</h2>
<table cellspacing="0" >
<tr>
<td>Mike</td>
<td>36 years</td>
<td>Architect</td>
</tr>
<tr>
<td>Sunil</td>
<td>45 years</td>
<td>Vice President aas</td>
</tr>
<tr>
<td>Jason</td>
<td>27 years</td>
<td>Junior Developer</td>
</tr>
</table>
<h2>Table below is using Divs only</h2>
<div class="table">
<div class="row">
<div class="cell">
Mike
</div>
<div class="cell">
36 years
</div>
<div class="cell">
Architect
</div>
</div>
<div class="row">
<div class="cell">
Sunil
</div>
<div class="cell">
45 years
</div>
<div class="cell">
Vice President
</div>
</div>
<div class="row">
<div class="cell">
Jason
</div>
<div class="cell">
27 years
</div>
<div class="cell">
Junior Developer
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
更新1
为了解决thatslch
在评论中提到的列的所有单元格中没有维持相同宽度的影响,可以采用以下两种方法中的任何一种.
指定cell
类的宽度
cell {display:inline-block; 宽度:340px;}
使用现代浏览器的CSS如下所示.
.table {display:table; }.{display:table-row;} .cell {display:table-cell;}
考虑到 Grid-CSS,我没有看到任何答案。我认为这是一种非常优雅的方法:grid-css 甚至支持行跨度和列跨度。在这里你可以找到一篇非常好的文章:
https://medium.com/@js_tut/css-grid-tutorial-filling-in-the-gaps-c596c9534611