繁体   English   中英

移动友好数据表

[英]Mobile friendly data table

我正在尝试制作移动友好的桌子。 我已经将表格的格式更改为某个像素值的列表。 但是,当您使用电话时,标题与数据冲突。

在移动设备中,该表如下所示: 查看错误图片

我只希望能够破坏标题,以便将发生冲突的部分包装到新行上。

<style>
        td {
            word-wrap: break-word;
        }
    /*
    Max width before this PARTICULAR table gets nasty. This query will take effect for any screen smaller than 760px and also iPads specifically.
    */
    @media
      only screen 
    and (max-width: 1500px), (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 {
      margin: 0 0 1rem 0;
    }

    tr:nth-child(odd) {
      background: #ccc;
    }

        td {
            /* Behave  like a "row" */
            border: none;
            border-bottom: 1px solid #eee;
            position: relative;
            padding-left: 50%;
                word-wrap: break-word;
        }

        td:before {
            /* Now like a table header */
            position: absolute;
            /* Top/left values mimic padding */
            top: 0;
            left: 6px;
            width: 45%;
            padding-right: 10px;
            white-space: nowrap;

        }

        /*
        Label the data
    You could also use a data-* attribute and content for this. That way "bloats" the HTML, this way means you need to keep HTML and CSS in sync. Lea Verou has a clever way to handle with text-shadow.
        */
        td:nth-of-type(1):before { content: "Date"; }
        td:nth-of-type(2):before { content: "Time"; }
        td:nth-of-type(3):before { content: "Aircraft"; }
        td:nth-of-type(4):before { content: "Passenger"; }
        td:nth-of-type(5):before { content: "Instructor"; }
        td:nth-of-type(6):before { content: "Fuel"; }
        td:nth-of-type(7):before { content: "Landings"; }
        td:nth-of-type(8):before { content: "Starting Tacho"; }
        td:nth-of-type(9):before { content: "Finishing Tacho"; }
        td:nth-of-type(10):before { content: "Flight Time"; }
        td:nth-of-type(11):before { content: "Aircraft Fees ($)"; }
        td:nth-of-type(12):before { content: "Instructor Fees ($)"; }
        td:nth-of-type(13):before { content: "GST ($)"; }
        td:nth-of-type(14):before { content: "Total Cost ($)"; }
    }
    </style>
 <tbody role="rowgroup">
    <?php 
     $sql = "SELECT * FROM flights WHERE LEFS_Member_Number = '$membernum' ORDER BY flight_number DESC";
      $result = $con->query($sql);
       while($row = $result->fetch_assoc()) {
           if ($row["passenger"] == null){
               $row["passenger"] = 'n/a';
           }

           if ($row["instructor"] == null){
               $row["instructor"] = 'n/a';
           }

            if ($row["instructor_fees"] == null){
               $row["instructor_fees"] = '0';
           }

        echo "<tr><td> ". $row["date"]."</td><td>" . $row["time"]. "</td><td>" . $row["aircraft"] . "</td><td>" . $row["passenger"]."</td><td>" . $row["instructor"]."</td><td>" . $row["fuel"]."</td><td>" . $row["landings"]."</td><td>" . $row["starting_tacho"]."</td><td>" . $row["finish_tacho"]."</td><td>" . $row["flight_time"]."</td><td> $" . $row["aircraft_fees"]."</td><td>$" . $row["instructor_fees"]."</td><td>$" . $row["gst"]."</td><td>$" . $row["total_cost"]."</td></tr>";
    }
      ?>
    </tbody>

使用这种方式

将您的需求基础更改为断点。

@media screen and (max-width: 640px) {}



var headertext = [],
    headers = document.querySelectorAll("#customDataTable th"),
    tablerows = document.querySelectorAll("#customDataTable th"),
    tablebody = document.querySelector("#customDataTable tbody");

for (var i = 0; i < headers.length; i++) {
    var current = headers[i];
    headertext.push(current.textContent.replace(/\r?\n|\r/, ""));
}
for (var i = 0, row; row = tablebody.rows[i]; i++) {
    for (var j = 0, col; col = row.cells[j]; j++) {
        col.setAttribute("data-th", headertext[j]);
    }
}

  var headertext = [], headers = document.querySelectorAll("#customDataTable th"), tablerows = document.querySelectorAll("#customDataTable th"), tablebody = document.querySelector("#customDataTable tbody"); for (var i = 0; i < headers.length; i++) { var current = headers[i]; headertext.push(current.textContent.replace(/\\r?\\n|\\r/, "")); } for (var i = 0, row; row = tablebody.rows[i]; i++) { for (var j = 0, col; col = row.cells[j]; j++) { col.setAttribute("data-th", headertext[j]); } } 
 @media screen and (max-width: 640px) { table#customDataTable caption { background-image: none; } table#customDataTable thead { display: none; } table#customDataTable tbody td { display: block; padding: .6rem; } table#customDataTable tbody tr td:first-child { background: #666; color: #fff; } table#customDataTable tbody tr td:first-child a { color: #fff; } table#customDataTable tbody tr td:first-child:before { color: rgb(225, 181, 71); } table#customDataTable tbody td:before { content: attr(data-th); font-weight: bold; display: inline-block; width: 10rem; } table#customDataTable tr th:last-child, table#customDataTable tr td:last-child { max-width: 100% !important; min-width: 100px !important; width: 100% !important; } } 
 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table class="table" id="customDataTable"> <thead> <tr> <th>#</th> <th>Firstname</th> <th>Lastname</th> <th>Age</th> <th>City</th> <th>Country</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>Anna</td> <td>Pitt</td> <td>35</td> <td>New York</td> <td>USA</td> </tr> <tr> <td>1</td> <td>Anna</td> <td>Pitt</td> <td>35</td> <td>New York</td> <td>USA</td> </tr> </tbody> </table> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM