可水平滚动 div 全宽 div

Horizontally scrollable div inside full width div

我有一个水平适合屏幕的 division,里面有 5 个 divison,我希望 4 个 division 出现在屏幕上,1 个 division 出现在我水平滚动 division。我希望滚动条只出现在 div 中,而不是出现在浏览器中 window.

下面是我的非工作代码,它把 h1 标签放在左边,我想把它放在左上角,然后在下面全部 5 divs

.outer {
  overflow-x: scroll;
  width: 100%;
}

.inner {
  width: 25%;
  float: left;
}
<div class="outer">
  <h1>Header Title</h1>
  <div class="inner">
  </div>
  <div class="inner">
  </div>
  <div class="inner">
  </div>
  <div class="inner">
  </div>
  <div class="inner">
  </div>
</div>

你可以用 Flexbox:

.outer {
  display: flex; /* displays flex-items (children) inline */
  overflow-x: auto;
}

.inner {
  flex: 0 0 25%; /* doesn't grow nor shrink, initial width set to 25% of the parent's */
  height: 1em; /* just for demo */
}
<div class="outer">
  <div class="inner" style="background: red"></div>
  <div class="inner" style="background: green"></div>
  <div class="inner" style="background: blue"></div>
  <div class="inner" style="background: yellow"></div>
  <div class="inner" style="background: orange"></div>
</div>

包含 h1 元素的解决方案:

.outer {
  display: flex;
  flex-direction: column;
  overflow-x: auto;
}

.middle {
  display: flex;
  flex: 1;
}

.inner {
  flex: 0 0 25%;
  height: 1em;
}
<div class="outer">
  <h1>Header Title</h1>
  <div class="middle">
    <div class="inner" style="background:red"></div>
    <div class="inner" style="background:green"></div>
    <div class="inner" style="background:blue"></div>
    <div class="inner" style="background:yellow"></div>
    <div class="inner" style="background:orange"></div>
  </div>
</div>

我不确定我是否误解了你,但我认为你想要做的是让 H1 超过 5 div,像这样:

https://jsfiddle.net/p78L2bka/

.outer {
  display: flex;
  overflow-x: scroll;
}

.middle {
  display: flex;
  width: 100%;
}

.inner {
  flex: 0 0 25%;
  height: 100px;
}
<h1>Header Title</h1>
<div class="outer">
  <div class="middle">
    <div class="inner" style="background: red">
    1
    </div>
    <div class="inner" style="background: green">
    2
    </div>
    <div class="inner" style="background: blue">
    3
    </div>
    <div class="inner" style="background: yellow">
    4
    </div>
    <div class="inner" style="background: orange">
    5
    </div>
  </div>
</div>