让 div 表现得像 table
Make divs act like table
我正在尝试让我的 div 像 table 这样我可以将我的 "columns" 堆叠在一起以获得良好的移动体验,但出于某种原因我的 table 不会拉伸到 100% 并均匀分布。
现场演示:
http://jsfiddle.net/7sqkgfuh/3/
这里是 HTML:
<div class="rds-table-stacked">
<div class="rds-column">
<div class="rds-table-header">Header One</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
</div>
<div class="rds-column">
<div class="rds-table-header">Header Two</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
</div>
<div class="rds-column">
<div class="rds-table-header">Header Four</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
</div>
<div class="rds-column">
<div class="rds-table-header">Header Five</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
</div>
</div>
和CSS:
.rds-table-stacked {
width:100%;
border-bottom:3px blue solid;
display: table;
}
.rds-column {
float:left;
width:auto;
display:table-cell;
}
.rds-column > div {
padding: 6px 12px 8px 12px;
border-bottom:1px #d1d2d1 solid;
width:100%;
}
.rds-column > div:nth-of-type(even){
background: green;
}
.rds-cell {
float:left;
clear:both;
display: table-cell;
}
@media (max-width: 500px) {
.rds-column {
clear:both;
width:100%;
}
}
.rds-table-header {
background:blue;
color:white;
}
从 .rds-column
中删除 float: left
:
.rds-column {
/* float: left */
display: table-cell;
}
我还建议将 table-layout: fixed
添加到 .rds-table-stacked
元素,然后将 box-sizing: border-box
添加到带填充的元素,以便在 [=24= 中包含填充] 计算。这样一来,所有内容加起来就是 100%
.
我正在尝试让我的 div 像 table 这样我可以将我的 "columns" 堆叠在一起以获得良好的移动体验,但出于某种原因我的 table 不会拉伸到 100% 并均匀分布。
现场演示:
http://jsfiddle.net/7sqkgfuh/3/
这里是 HTML:
<div class="rds-table-stacked">
<div class="rds-column">
<div class="rds-table-header">Header One</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
</div>
<div class="rds-column">
<div class="rds-table-header">Header Two</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
</div>
<div class="rds-column">
<div class="rds-table-header">Header Four</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
</div>
<div class="rds-column">
<div class="rds-table-header">Header Five</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
<div class="rds-cell">Cell Item</div>
</div>
</div>
和CSS:
.rds-table-stacked {
width:100%;
border-bottom:3px blue solid;
display: table;
}
.rds-column {
float:left;
width:auto;
display:table-cell;
}
.rds-column > div {
padding: 6px 12px 8px 12px;
border-bottom:1px #d1d2d1 solid;
width:100%;
}
.rds-column > div:nth-of-type(even){
background: green;
}
.rds-cell {
float:left;
clear:both;
display: table-cell;
}
@media (max-width: 500px) {
.rds-column {
clear:both;
width:100%;
}
}
.rds-table-header {
background:blue;
color:white;
}
从 .rds-column
中删除 float: left
:
.rds-column {
/* float: left */
display: table-cell;
}
我还建议将 table-layout: fixed
添加到 .rds-table-stacked
元素,然后将 box-sizing: border-box
添加到带填充的元素,以便在 [=24= 中包含填充] 计算。这样一来,所有内容加起来就是 100%
.