CSS中可变列数的表

时间:2014-06-27 10:30:47

标签: css css-tables

例如,这就是它在桌面上的外观

enter image description here

并在移动设备上

enter image description here

我知道我可以通过修改表的结构来使用JS来做到这一点,但是我还没能找到一个只有最小JS的CSS解决方案。

1 个答案:

答案 0 :(得分:0)

请尝试以下操作: LINK

CSS:

table {
    width: 100%;
    border-collapse: collapse;
}
/* Zebra striping */
 tr:nth-of-type(odd) {
    background: #eee;
}
th {
    background: #333;
    color: white;
    font-weight: bold;
}
td, th {
    padding: 6px;
    border: 1px solid #ccc;
    text-align: left;
}

 @media only screen and (max-width: 760px), (min-device-width: 768px) and (max-device-width: 1024px) {
    /* Force table to not be like tables anymore */
    table, thead, tbody, th, td, tr {
        display: block;
    }
    /* Hide table headers (but not display: none;, for accessibility) */
    thead tr {
        position: absolute;
        top: -9999px;
        left: -9999px;
    }
    tr {
        border: 1px solid #ccc;
    }
    td {
        /* Behave  like a "row" */
        border: none;
        border-bottom: 1px solid #eee;
        position: relative;
        padding-left: 50%;
    }
    td:before {
        /* Now like a table header */
        position: absolute;
        /* Top/left values mimic padding */
        top: 6px;
        left: 6px;
        width: 45%;
        padding-right: 10px;
        white-space: nowrap;
    }
    /*
        Label the data
        */
    td:nth-of-type(1):before {
        content:"First Name";
    }
    td:nth-of-type(2):before {
        content:"Last Name";
    }
    td:nth-of-type(3):before {
        content:"Job Title";
    }
    td:nth-of-type(4):before {
        content:"Favorite Color";
    }
    td:nth-of-type(5):before {
        content:"Wars of Trek?";
    }
    td:nth-of-type(6):before {
        content:"Porn Name";
    }
    td:nth-of-type(7):before {
        content:"Date of Birth";
    }
    td:nth-of-type(8):before {
        content:"Dream Vacation City";
    }
    td:nth-of-type(9):before {
        content:"GPA";
    }
    td:nth-of-type(10):before {
        content:"Arbitrary Data";
    }
}
/* Smartphones (portrait and landscape) ----------- */
 @media only screen and (min-device-width : 320px) and (max-device-width : 480px) {
    body {
        padding: 0;
        margin: 0;
        width: 320px;
    }
}
/* iPads (portrait and landscape) ----------- */
 @media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
    body {
        width: 495px;
    }
}