html - 如何在不破坏 flexbox 布局的情况下显示巨大的数据网格?

标签 html css flexbox tablelayout

我有这样的要求,用户希望看到需要丢失水平滚动的巨大表。问题是数据表是在页眉/内容/页脚布局 (flexbox) 已经设置之后加载的。当它确实加载时,它只是加载到所有内容之外(如下面的屏幕截图所示)并且看起来很糟糕。

它看起来不错,直到您一直滚动到右侧,然后您才能看到表格超出了页眉和页脚。

table breaks layout

.container {
  display: flex;
  -ms-flex-direction: column;
  height:100vh; 
  flex-direction: column;
  min-height: 100vh;
}
.row-wrapper{ 
  display: flex;
  flex-direction: row;
}
nav {
    flex: 0 0 30px;
 }
main{
    margin-left:5px;
    flex:1
}
header {
   background: blue;
   color: white; 
}
footer {
   background: black;
   color: white;
}
header, footer{
  display: block;
  flex:none;
}
<div class ="container">
    <header>I AM HEADER</header>
    <div class="row-wrapper">
        <nav>Side links</nav>
        <main>
            <table>
              <tr>
                <td>Jill</td>
                <td>Smith</td> 
                <td>50</td>
                <td>50</td>
                 <td>Jill</td>
                <td>Smith</td> 
                <td>50</td>
                <td>50</td>
                         <td>Jill</td>
                <td>Smith</td> 
                <td>50</td>
                <td>50</td>
                 <td>Jill</td>
                <td>Smith</td> 
                <td>50</td>
                <td>50</td>
                           <td>Jill</td>
                <td>Smith</td> 
                <td>50</td>
                <td>50</td>
                 <td>Jill</td>
                <td>Smith</td> 
                <td>50</td>
                <td>50</td>
              </tr>
              <tr>
                <td>Eve</td>
                <td>Jackson</td> 
                <td>94</td>
                <td>50</td>
                <td>Eve</td>
                <td>Jackson</td> 
                <td>94</td>
                <td>50</td>
                         <td>Jill</td>
                <td>Smith</td> 
                <td>50</td>
                <td>50</td>
                 <td>Jill</td>
                <td>Smith</td> 
                <td>50</td>
                <td>50</td>
                           <td>Jill</td>
                <td>Smith</td> 
                <td>50</td>
                <td>50</td>
                 <td>Jill</td>
                <td>Smith</td> 
                <td>50</td>
                <td>50</td>
              </tr>
            </table>
        </main>
    </div>
    <footer>I AM FOOTER </footer>
</div>

如何让 flexbox 布局重新适应这个新的巨大表格?

JSFiddle link

最佳答案

我通过设置 width:auto 解决了这个问题和 position:absolute<div class="container"> .

关于html - 如何在不破坏 flexbox 布局的情况下显示巨大的数据网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33727865/

相关文章:

javascript - 使用 jQuery 添加元素后刷新 css

javascript - 如何将这些列表元素与某些按钮对齐?

html - Flex-direction column 使 flex 元素重叠 IE11

javascript - 将三元开关添加到按钮 - Javascript

javascript - 使用 setTimeout() 关闭 jQuery UI

html - 在CSS中创建子菜单

javascript - 删除一项内的内容时在行上方创建的神秘空间

javascript - JavaScript 中的 mouseout 终止函数

javascript - 如何在html中隐藏标签

html - 当窗口调整到小于背景宽度时如何使div保持居中