純css實現table表格固定列和表頭,中間橫向滾動的思路-附案例


最近做的后台管理系統要處理大量的表格
原項目是采用的for循環加拼接字符串的方式實現;導致js代碼一大堆;各種單引號和雙引號的嵌套;讓人頭疼;遂引入vue.js;用v-for做模板渲染;工作量頓時減輕不少,心情舒暢;
文字被強制換行了
由於個別表的列數較多;文字都擠在一起向下換行了;現場慘不忍睹;於是采用強制不換行的方式
<style>
div{
     white-space: nowrap;//強制不折行
}
</style>
新的問題是強制換行之后整個寬度超出了body
於是考慮到把table重要的列給固定掉;中間用橫向滾動條來拖動;
<style>
div{
    white-space: nowrap;
    overflow: hidden;//控制溢出隱藏
    overflow-x: scroll;//設置橫向滾動條
}
</style>

  • 考慮到要做固定列;於是要把table拆分出來;然后用浮動把table還原;下面這個案例就是把一個table拆成三個;然后浮動起來還原

  • 考慮到要做自適應;於是采用百分比來做;

<style>
    div{
        width: 100%;
        white-space: nowrap;
    }
    table td{
        border: 1px solid #000;
    }
    .tab1{
        width: 20%;
        float: left;
    }
    .tab2{
        width: 70%;
        float: left;
        overflow: hidden;
        overflow-x: scroll;
    }
    .tab3{
        width: 10%;
        float: left;
    }
</style>
<body>
<div>
    <table class="tab1">
        <thead>
        <tr>
            <th>首列</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>首列</td>
        </tr>
        </tbody>
    </table>

    <table class="tab2">
        <thead>
        <tr>
            <th>中間列</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>中間列</td>
        </tr>
        </tbody>
    </table>

    <table class="tab3" >
        <thead>
        <tr>
            <th>尾列</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>尾列</td>
        </tr>
        </tbody>
    </table>
</div>
</body>

於是上面這個案例就完成了
還有一點是中間table的表頭也需要固定 不能隨下面的額tbody去滑動;我這里采取的思路是用定位去做;既然上面都是用百分比去做;那么定位的left值也是百分比;這里就不上代碼了

更多內容關注我的個人博客 www.fengkaichang.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM