当前位置: 首页 > 知识库问答 >
问题:

隐藏在垂直溢出下的水平滚动条

姬选
2023-03-14

我的目标是创建一个具有特定条件的表:

  1. 如果显示宽度太小,无法容纳内容,请添加水平滚动条,并且不要收缩单元格。
  2. 如果显示高度太小,无法容纳内容,请添加垂直滚动条,并且不要收缩单元格。

我设法实现了这一点,但我有一个问题,如果显示宽度和高度都太小,不能适合内容,垂直滚动条是完美的,但水平滚动条隐藏在垂直溢出下。因此,如果用户希望看到整个第一行,他/她需要垂直滚动到末尾,然后水平滚动到末尾,最后垂直往回滚动看到第一行。
下面是一个JSFiddle示例:https://JSFiddle.net/totsik/fr24ldyb/7/
CSS和HTML:

null

.main-container {
   background-color: #222C2A;
   color: #F3EED9;
   margin: 3rem 5%;
}

.container {
   overflow-y: auto;
   padding: 2rem;
   min-height: 50vh;
   max-height: 70vh;
   border: 2px solid #222C2A;
}

table {
   overflow-x: auto;
   display: block;
   border-collapse: collapse;
   width: 100%;
}

tr.table-head-row th {
   border-style: solid;
   border-width: 2px 0;
   border-color: #F3EED9;
}

tr td {
   text-align: center;
}

tr td:first-child {
   text-align: left;
}

th {
   width: 100%;
   background: #222C2A;
   text-align: left;
   padding: 1rem 2rem;
}

td {
   font-size: 1rem;
   padding: 0.75rem 1.5rem;
   background-color: #F3EED9;
   color: #222C2A;
}
<div class="main-container">
   <div class="container">
      <table>
         <thead>
            <tr class="table-head-row">
               <th class="">header 1</th>
               <th class="">header 2</th>
               <th class="">header 3</th>
               <th class="">header 4</th>
               <th></th>
            </tr>
         </thead>
         <tr>
            <td>data 1</td>
            <td>data 2</td>
            <td>data 3</td>
            <td>data 4</td>
            <td><button>button</button></td>
         </tr>
         <tr>
            <td>data 1</td>
            <td>data 2</td>
            <td>data 3</td>
            <td>data 4</td>
            <td><button>button</button></td>
         </tr>
         <tr>
            <td>data 1</td>
            <td>data 2</td>
            <td>data 3</td>
            <td>data 4</td>
            <td><button>button</button></td>
         </tr>
         <tr>
            <td>data 1</td>
            <td>data 2</td>
            <td>data 3</td>
            <td>data 4</td>
            <td><button>button</button></td>
         </tr>
         <tr>
            <td>data 1</td>
            <td>data 2</td>
            <td>data 3</td>
            <td>data 4</td>
            <td><button>button</button></td>
         </tr>
         <tr>
            <td>data 1</td>
            <td>data 2</td>
            <td>data 3</td>
            <td>data 4</td>
            <td><button>button</button></td>
         </tr>
         <tr>
            <td>data 1</td>
            <td>data 2</td>
            <td>data 3</td>
            <td>data 4</td>
            <td><button>button</button></td>
         </tr>
         <tr>
            <td>data 1</td>
            <td>data 2</td>
            <td>data 3</td>
            <td>data 4</td>
            <td><button>button</button></td>
         </tr>
         <tr>
            <td>data 1</td>
            <td>data 2</td>
            <td>data 3</td>
            <td>data 4</td>
            <td><button>button</button></td>
         </tr>
         <tr>
            <td>data 1</td>
            <td>data 2</td>
            <td>data 3</td>
            <td>data 4</td>
            <td><button>button</button></td>
         </tr>
      </table>
   </div>
</div>

null

我希望发生的是,如果高度和宽度都太小,滚动条将同时可见。我应该如何更改我的代码来完成这一点?

更新:更新了jsfiddle。还忘了提到,我希望在容器div上的滚动条是垂直的,而不是表本身。

共有1个答案

娄利
2023-03-14

fiddle示例在表中有一个max-height,而上面的文本没有。更改表格中的最大高度

table {
   overflow-x: auto;
   display: block;
   border-collapse: collapse;
   width: 100%;
   max-height: 50vh;
}

并且两条都显示

 类似资料:
  • 问题内容: 我有一个固定宽度但高度可变的HTML文本区域。我想设置并能够显示一个垂直滚动条,但不能显示水平滚动条。由于其他与我的情况有关的其他原因,我无法使用。 我知道无法使用CSS2仅显示垂直滚动条,而不能显示水平滚动条。我可以使用JavaScript隐藏水平滚动条吗? 问题答案: 您可以像这样使用CSS:

  • 我在一个大型遗留系统中工作,系统中有数千个页面,动态生成的表格数据被填充到html中,定义格式如下: 我的任务是移除不必要的小水平滚动条,这些滚动条似乎使系统感到困惑。经过一段时间的研究,我意识到当表格数据量垂直溢出包含的div并导致垂直滚动条出现时,新生成的垂直滚动条本身会推入div的内容区域,从而导致表格数据水平溢出,从而导致不希望出现的水平滚动条。换句话说,当垂直滚动条出现时,它会侵入内容空

  • 我在一个大型遗留系统中工作,系统中有数千个页面,动态生成的表格数据被填充到html中,定义格式如下: 我的任务是移除不必要的小水平滚动条,这些滚动条似乎使系统感到困惑。经过一段时间的研究,我意识到当表格数据量垂直溢出包含的div并导致垂直滚动条出现时,新生成的垂直滚动条本身会推入div的内容区域,从而导致表格数据水平溢出,从而导致不希望出现的水平滚动条。换句话说,当垂直滚动条出现时,它会侵入内容空

  • 我正在使用GridView创建一个组件来创建像Excel这样的表。在这里,我最初创建了一个2x2网格,稍后当用户单击按钮时,会添加额外的行和列。 这是我添加新专栏的做法:- 这可以正常工作并添加额外的列。问题是当添加列时,以前的列会收缩以适应新列,从而使每次添加新列时列看起来更小。我想一次只在屏幕上显示2列,然后让用户水平向前滚动以查看更多列。现在网格只能垂直滚动。同样,我希望在添加新行时发生这种

  • 问题内容: 我需要使用css,jquery或js隐藏iframe上的水平滚动条。 问题答案: 我建议结合使用 CSS (对于HTML4) 和 (对于HTML5) * 该属性 *已从标准中 删除 ,并且没有浏览器支持该属性。

  • 我在一个容器里有一张基本的桌子。该表将有大约25列。我正在尝试添加一个水平滚动条溢出的表,并有一个真正困难的时间。 现在发生的是,表格单元格通过自动调整单元格的高度和保持固定的表格宽度来容纳单元格的内容。 我感谢任何关于为什么我的方法不能解决这个问题的建议。 提前多谢! CSS HTML JS fiddle(注:如果可能,我希望水平滚动条在带有红色边框的容器中):http://jsfiddle.n