css 柔性盒中的可调整大小的容器偏向一侧

v2g6jxz6  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(68)

为什么这个例子中两个窗格元素之间的分隔符“偏向”第二窗格?我所说的偏置是指拖动调整大小手柄会导致手柄从光标所在的位置向左对齐,在拖动时将其拉到一边。在窗格上设置flex:none会导致拖动调整大小正常工作,但内容会溢出父元素,这是我不希望看到的。有没有一种方法可以在没有任何JS的纯CSS中解决这个问题?

div#main-panel {
  flex: auto;
}

.horizontal-container {
  display: flex;
  flex-flow: row nowrap;
}

.pane {
  overflow: auto;
  border: solid black;
  flex: 1 1 auto;
}

.left-pane {
  min-width: 10%;
  max-width: 50%;
  border: solid red;
  resize: horizontal;
}
<div class="horizontal-container" id="main-panel">
  <div class="pane left-pane">
    sample text
  </div>
  <div class="pane secondary-pane">
    loooooooooooooooooooooooooooong loooooooooooooooooooooooooooong loooooooooooooooooooooooooooong loooooooooooooooooooooooooooong loooooooooooooooooooooooooooong loooooooooooooooooooooooooooong loooooooooooooooooooooooooooong loooooooooooooooooooooooooooong
  </div>
</div>
bakd9h0s

bakd9h0s1#

这是因为一个固定宽度的flex子级不会被视为原样,它会收缩。因此,您可以将flex-shrink: 0添加到left-pane,以便它不会缩小:

div#main-panel {
  flex: auto;
}

.horizontal-container {
  display: flex;
  flex-flow: row nowrap;
}

.pane {
  overflow: auto;
  border: solid black;
  flex: 1 1 auto;
}

.left-pane {
  min-width: 10%;
  max-width: 50%;
  border: solid red;
  resize: horizontal;
  flex-shrink: 0;
}
<div class="horizontal-container" id="main-panel">
  <div class="pane left-pane">
    sample text
  </div>
  <div class="pane secondary-pane">
    loooooooooooooooooooooooooooong loooooooooooooooooooooooooooong loooooooooooooooooooooooooooong loooooooooooooooooooooooooooong loooooooooooooooooooooooooooong loooooooooooooooooooooooooooong loooooooooooooooooooooooooooong loooooooooooooooooooooooooooong
  </div>
</div>

相关问题