如何在不缩小列的情况下制作可滚动表?

Posted

技术标签:

【中文标题】如何在不缩小列的情况下制作可滚动表?【英文标题】:How to Make a scrollable table without the column shrinking? 【发布时间】:2016-11-12 21:56:18 【问题描述】:

我需要制作一个可滚动的菜单,目前,我正在使用表格来创建按钮并使其工作如下。

我希望按钮与上面一样,当我添加另一个按钮时,我希望它被隐藏,我可以使用右键显示右侧的按钮但隐藏左侧的一个按钮,但是当我添加一个按钮而不是可滚动的按钮,它缩小了我的按钮,只有在我添加了大约 10 个按钮后才停止缩小,只有这一次左右按钮才能工作。

我正在寻找的是只有 9 个按钮作为要显示的第一个图片按钮,而我将添加的其余按钮需要使用右键滚动。

<!DOCTYPE html>

<html>
<head>
    <title></title>
    <style>
        #header 
            border-style:solid;
            border-color:skyblue;
            height:105px;
        

        #content 
            border-style:solid;
            border-color:skyblue;
            min-height:300px;
            margin-top : 3px;
            margin-bottom : 3px;
        

        #footer 
            border-style: solid;
            border-color: skyblue;
        

        #tab 
            display:block;
            vertical-align:top;
            margin-top:1%;
            overflow:auto;
        

        .pad 
            height:70px;
            width:82px;
            padding:15px 15px 3px 15px;
            text-align:center;
            font-weight:bold;
            -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
            border:solid 1px;
            border-radius: 2px 2px 2px 2px;
        

        .pad:hover 
            background-color: #4CAF50;
            color: white;
        

        .button_gmb 
            height:40px;
            width:48px;
            margin-top:-10px;
        

        .button_gmb:hover 
            height:50px;
            width:58px;
        

        .next 
            background-image:url('pictures/right.png');
            position:absolute;
            top:8%;
            left:95%;
        

       .previous 
            position:absolute;
            top:8%;
            left:17%;
        
   </style>
    </head>
    <body>
           <script>
     function scrollWinLeft() 
         document.getElementById("a").scrollLeft += -60;
      

         function scrollWinRight() 
      document.getElementById("a").scrollLeft += 103;

  </script>
       <div id ="header">
                <img ID ="Image1" src="pictures/logo_kolej.png" style = "margin-top:27px;margin-left:5px;width:180px"/>
                <button class="previous" onclick="scrollWinLeft()"/>Left </button>
                 <div id = "a" style="position:absolute;top: 3%;left:18%; width:80%;height:50%">
                  <table border="0" id="tab" style="margin-top:-2px;margin-left:30px; overflow-y:scroll;"  >
                    <tr>
                         <td class="pad"><a href="home.php?page=home"><img class="button_gmb" src="pictures/Home.png" /><br />Home</a></td>
                          <td class="pad"><a href="home.php?page=schedule"><img class="button_gmb" src="pictures/Efficient-Diary-logo.png"/><br />Schedule</a></td>
                          <td class="pad"><a href="home.php?page=finance"><img class="button_gmb" src="pictures/3-people-logo.png"><br />Finance</a></td>
                         <td class="pad"><a href="home.php?page=chat.php"><img class="button_gmb" src="pictures/Event.png"/><br />Chat</a></td>
                          <td class="pad"><a href="home.php?page=Gallery.php"><img class="button_gmb" src="pictures/Apps-Gallery-icon.png"/><br />Gallery</a></td>
                         <td class="pad"><a href="home.php?page=index.php"><img class="button_gmb" style="margin-right:18px;" src="pictures/logout.png"/><br />Logout</a></td>
                          <td class="pad"><img class="button_gmb" src="pictures/time.png"/><br /></td>
                          <td class="pad"><img class="button_gmb" src="pictures/time.png"/><br /></td>
                         <td class="pad"><img class="button_gmb" src="pictures/time.png"/><br /></td>
                         <td class="pad"><img class="button_gmb" src="pictures/time.png"/><br /></td>
                       <td class="pad"><img class="button_gmb" src="pictures/time.png"/><br /></td>
                        <td class="pad"><img class="button_gmb" src="pictures/time.png"/><br /></td>
                         <td class="pad"><img class="button_gmb" src="pictures/time.png"/><br /></td>
                         <td class="pad"><img class="button_gmb" src="pictures/time.png"/><br /></td>
                        <td class="pad"><img class="button_gmb" src="pictures/time.png"/><br /></td>
                        <td class="pad"><img class="button_gmb" src="pictures/time.png"/><br /></td>
                       <td class="pad"><img class="button_gmb" src="pictures/time.png"/><br /></td>
                        <td class="pad"><img class="button_gmb" src="pictures/time.png"/><br /></td>
                          <td class="pad"><img class="button_gmb" src="pictures/time.png"/><br /></td>
                          <td class="pad"><img class="button_gmb" src="pictures/time.png"/><br /></td>

                 </tr>
             </table>
            </div>
            <button class="next" onclick="scrollWinRight()">Right</button>
        </div>

   <div id ="content">
       <div style="margin-left:50px;margin-top:30px;margin-bottom:30px;margin-right:50px;">
             <?php
             if(isset($_GET['page'])) 
                $page_name = $_GET['page'];
               include("pages/".$page_name.".php");
             
           ?>
       </div>
   </div>

  <div id ="footer">
       <p style ="text-align:center;margin-top:3px;">2016 © Copyright Family Management System | All Rights Reserved </p>
  </div>

这是我的第一个项目,我真的不知道该怎么做。

【问题讨论】:

【参考方案1】:

使用引导表类“.table-responsive”并使用以下css代码-

.table-responsive 
        width: 100%;
        margin-bottom: 15px;
        overflow-y: hidden;
        -ms-overflow-style: -ms-autohiding-scrollbar;
        border: 1px solid #ddd;
    
    .table-responsive > .table 
        margin-bottom: 0;
    
    .table-responsive > .table > thead > tr > th,
    .table-responsive > .table > tbody > tr > th,
    .table-responsive > .table > tfoot > tr > th,
    .table-responsive > .table > thead > tr > td,
    .table-responsive > .table > tbody > tr > td,
    .table-responsive > .table > tfoot > tr > td 
        white-space: nowrap;
    
    .table-responsive > .table-bordered 
        border: 0;
    
    .table-responsive > .table-bordered > thead > tr > th:first-child,
    .table-responsive > .table-bordered > tbody > tr > th:first-child,
    .table-responsive > .table-bordered > tfoot > tr > th:first-child,
    .table-responsive > .table-bordered > thead > tr > td:first-child,
    .table-responsive > .table-bordered > tbody > tr > td:first-child,
    .table-responsive > .table-bordered > tfoot > tr > td:first-child 
        border-left: 0;
    
    .table-responsive > .table-bordered > thead > tr > th:last-child,
    .table-responsive > .table-bordered > tbody > tr > th:last-child,
    .table-responsive > .table-bordered > tfoot > tr > th:last-child,
    .table-responsive > .table-bordered > thead > tr > td:last-child,
    .table-responsive > .table-bordered > tbody > tr > td:last-child,
    .table-responsive > .table-bordered > tfoot > tr > td:last-child 
        border-right: 0;
    
    .table-responsive > .table-bordered > tbody > tr:last-child > th,
    .table-responsive > .table-bordered > tfoot > tr:last-child > th,
    .table-responsive > .table-bordered > tbody > tr:last-child > td,
    .table-responsive > .table-bordered > tfoot > tr:last-child > td 
        border-bottom: 0;
    

【讨论】:

对不起,回复晚了,非常感谢代码,还没有测试,我会测试它并告诉你结果。再次感谢先生..

以上是关于如何在不缩小列的情况下制作可滚动表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不滚动的情况下触发滚动事件

如何在不命名所有列的情况下合并两个表?

如何在不缩小r闪亮中的矩阵大小的情况下向输入矩阵添加列?

如何使用机器人框架和 python 在不滚动的情况下获取所有匹配的元素?

oracle数据库表空间占用太大,如何在不删除表的情况下缩小占用空间

如何制作可滚动的mat-list