我正在构建一个加载到第三方应用程序中的html应用程序,该应用程序旨在填充提供给我的应用程序的垂直和水平空间,而不会引起页面级滚动条。为此,我大量使用了flexbox样式,但是我找不到适用于最新版本IE / EDGE和FF的以下要求的解决方案(Chrome可以正常工作)。

要求:


2列布局
LHS列的可用空间高100%,并且具有一个垂直滚动条,用于当其内容长于列的高度时使用。
RHS列的可用空间为100%高,宽度为100%(我目前已实现此目的)
LHS和RHS列不能具有“ position:absolute”样式(FF性能问题,无法在具有挠性和绝对位置的容器内渲染HighCharts)或显式的像素高度/宽度(需要响应)。


我已经设置了这个小提琴,以演示FF / IE / EDGE中存在的问题-由于LHS内容而导致的页面级滚动条。 Chrome的行为符合预期。

http://jsfiddle.net/jzo56zzg/

的HTML

<div class="wrap">
    <div>
        SOME 3RD PARTY ELEMENTS HERE
    </div>
    <div class="main">
        <div class="row">
            <div class="left">
                <p>lots of content</p>
                <p>lots of content</p>
                // enough content to be higher then app's allowed height
            </div>
            <div class="right">
                right
            </div>
        </div>
    </div>
</div>


的CSS

html,
body {
  height: 100%;
}

.wrap {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: red;
}

.main {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: yellow;
}

.row {
  flex: 1;
  display: flex;
  background: blue;
}

.left {
  overflow-y: scroll;
  background: green;
}

.right {
  flex: 1;
  background: pink;
}


有谁知道我能通过提到的严格要求来实现这种相对简单的设计(有人会认为)?

最佳答案

这是显示我认为您想要的结果的小提琴:

https://jsfiddle.net/jameslafferty/wjsqmsbs/

问题在于计算高度的方法可能会有些松散。我的解决方案中的关键要素是:

.row:last-child {
    flex: 0 1 auto;
    overflow: hidden;
}




.column {
    overflow-y: auto;
    max-height: 100%;
}

关于html - FF/IE/EDGE行中100%高的列上的CSS flexbox垂直滚动条,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38989188/

10-11 22:19
查看更多