代码之家  ›  专栏  ›  技术社区  ›  thomasb DaveRead

具有垂直和水平滚动内容的灵活布局设计[副本]

  •  2
  • thomasb DaveRead  · 技术社区  · 6 年前

    我有一个固定页眉,固定页脚,固定菜单和滚动内容的flexbox布局。

    由于一些文章和答案,我设法使菜单和内容垂直滚动,如预期。

    现在,我只是找不到如何做同样的水平滚动内容。水平滚动条始终显示在正文级别。我试过给每个容器加宽,但没用。我以为 overflow: auto .layout-content-content div可以水平和垂直地溢出,但是CSS显然不是那么容易驯服的。

    对应的代码笔: https://codepen.io/cosmo0/pen/vaZbGL

    html,
    body,
    .layout-container {
      height: 100%;
      width: 100%;
    }
    body {
      margin: 0;
    }
    .layout-container {
      display: flex;
      flex-direction: column;
      height: 100%;
      width: 100%;
    }
    .header,
    .footer {
      height: 50px;
      flex: 0 0 auto;
    }
    .layout-body {
      flex: 1 1 auto;
      display: flex;
    }
    .layout-menu {
      flex: 0 0 auto;
      width: 300px;
      overflow: auto;
    }
    .layout-content {
      flex: 1 1 auto;
      display: flex;
      flex-direction: column;
    }
    .layout-content-title {
      flex: 0 0 auto;
      height: 50px;
    }
    .layout-content-content {
      flex: 1 1 auto;
      overflow: auto;
    }
    
    /* this is to simulate some large data table */
    .large {
      width: 10000px;
      border: 1px solid #ccc;
    }
    <div class="layout-container">
      <div class="header">Header</div>
      <div class="layout-body">
        <div class="layout-menu">
          <ul>
            <li>Menu contents</li>
          </ul>
        </div>
        <div class="layout-content">
          <div class="layout-content-title">Page title</div>
          <div class="layout-content-content">
            <div class="large">This content is too large</div>
            <p>Content content.</p>
          </div>
        </div>
      </div>
      <div class="footer">Footer  </div>
    </div>
    1 回复  |  直到 6 年前
        1
  •  1
  •   nsane    6 年前

    简单地说

    overflow: auto;
    

    到上面 .布局内容