子可滚动容器打破父的div宽度

时间:2017-03-13 11:23:14

标签: html css css3

我正在尝试编写以下标记。在左侧,我有固定宽度的容器。在右侧,我有一个灵活的不可滚动的容器,宽度为100%。这个灵活的容器包含另一个100%宽度的容器,一旦它被x轴溢出就应该可以滚动。在我的例子中,这个可滚动的子容器增加了父容器的宽度,并使整个页面可滚动,即使子容器也是可滚动的。我需要在不破坏父div的宽度的情况下制作可滚动的子容器。我已经简化了标记,所以基本上它看起来像这样:

HTML

<div class="container">
<div class="left">
Menu
</div>
<div class="right">
 <div class="header">
  <div>
   Some text here on the left
  </div>
  <div>
    <button>
    Some button
    </button>
  </div>
 </div>
 <div class="scrollable-container">
   <div class="item">1</div>
   <div class="item">2</div>
   <div class="item">3</div>
   <div class="item">4</div>
   <div class="item">5</div>
   <div class="item">6</div>
   <div class="item">7</div>
 </div>
</div>
</div>

CSS

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

.left {
  width: 5em;
  border: 1px solid black;
}

.right {
  width: 100%;
  border: 1px solid black;
  display: flex;
  flex-direction: column;
}

.header {
  display: flex;
  justify-content: space-between;
}

.scrollable-container {
  overflow: scroll;
  width: 100%;
  display: flex;
  justify-content: space-between;
}

.item {
  min-width: 3em;
  height: 2em;
  background-color: red;
  border: 1px solid green;
}

这是jsfiddle链接只是为了玩。您可以更改结果框的宽度以查看问题。它工作正常,直到可滚动容器没有溢出

https://jsfiddle.net/tmr9jsbz/2/

2 个答案:

答案 0 :(得分:1)

make overflow auto

scrollable-container {
    overflow: auto;
....

答案 1 :(得分:0)

将此添加到您的代码中:

.right {
    overflow: hidden;
}

JSFiddle