【问题标题】:How to display a gigantic data grid without breaking flexbox layout?如何在不破坏 flexbox 布局的情况下显示巨大的数据网格?
【发布时间】:2017-01-17 22:51:57
【问题描述】:

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

它看起来很好,直到您一直向右滚动,然后您可以看到表格超出了页眉和页脚。

.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

【问题讨论】:

  • Flexbox 确实可以适应新的内容(事实上,CSS 通常会这样做)。这意味着您还有其他一些问题会阻止对该表进行计数。我的第一个猜测是display: absolute; 或类似的东西。
  • 感谢您的回复.. 我刚刚添加了一个更清楚地说明问题的 jsfiddle

标签: html css flexbox tablelayout


【解决方案1】:

我通过在&lt;div class="container"&gt; 中设置width:autoposition:absolute 解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-29
    • 2019-11-20
    • 2020-05-03
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    相关资源
    最近更新 更多