使div像表一样

时间:2015-03-02 21:35:53

标签: html css css3 css-tables

我试图让我的div像一张桌子,所以我可以堆叠我的"列"相互依赖,以获得良好的移动体验,但出于某种原因,我的桌子不会伸展到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;
}

1 个答案:

答案 0 :(得分:1)

float: left移除.rds-column

Updated Example

.rds-column {
    /* float: left */
    display: table-cell;
}

我还建议将table-layout: fixed添加到.rds-table-stacked元素,然后将box-sizing: border-box添加到带填充的元素中,以便在宽度/高度计算中包含填充。这样做,一切都将累加到100%