三栏HTML弹性框:如何设置中间的一个以获得所有剩余空间?

Dr.*_*ini 23 html css flexbox

假设我使用display: flex;(demo)设置了一个简单的三列布局.在左列和右列中,我有指定宽度的图像(100px每个).在中间栏中,我有主要内容区域.此区域具有高分辨率图像:

<div id="main-container">

    <div id="left-content">
        <div><img src="http://agevoluzione.com/wp-content/uploads/2014/07/Work-in-progress-1024x603.png"></div>
        <div><img src="http://agevoluzione.com/wp-content/uploads/2014/07/Work-in-progress-1024x603.png"></div>
        <div><img src="http://agevoluzione.com/wp-content/uploads/2014/07/Work-in-progress-1024x603.png"></div>
        <div><img src="http://agevoluzione.com/wp-content/uploads/2014/07/Work-in-progress-1024x603.png"></div>
    </div>

    <div id="center-content">
        <div><img src="https://farm6.staticflickr.com/5560/14080568109_9f33dc7964_o.jpg"></div>
    </div>

    <div id="right-content">
        <div><img src="http://agevoluzione.com/wp-content/uploads/2014/07/Work-in-progress-1024x603.png"></div>
        <div><img src="http://agevoluzione.com/wp-content/uploads/2014/07/Work-in-progress-1024x603.png"></div>
        <div><img src="http://agevoluzione.com/wp-content/uploads/2014/07/Work-in-progress-1024x603.png"></div>
        <div><img src="http://agevoluzione.com/wp-content/uploads/2014/07/Work-in-progress-1024x603.png"></div>
    </div>
    </div>

</div>
Run Code Online (Sandbox Code Playgroud)

我需要调整CSS,以便中心列宽度最多是侧列之间可用空间的100%(换句话说,它必须始终是这样宽:windowSize-column1-column2).如果窗口缩小,我需要中心列(及其图像)随之缩小.

#main-container
    {
    display: flex;
    justify-content: space-between;
    align-items: center;
    }

#left-content,
#right-content
    {
    width: 102px;

    border-style: solid;
    border-width: 2px;
    border-color: magenta;
    }

#left-content img,
#right-content img
    {
    width: 100px;
    }

#center-content
    {
    }

#center-content img
    {
    max-width: 100%;
    height: auto;
    }
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

0b1*_*011 35

正确的做法是flex.设置flex1 1 auto了中间一列,并0 0 auto在侧栏.这使得侧列始终是指定的宽度(或内容的宽度,如果未指定),并且中间列占用剩余空间(相应地增长/收缩).这是CSS(演示):

#main-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
#center-content {
    flex:1 1 auto; /* Lets middle column shrink/grow to available width */
}
#left-content,
#right-content {
    flex:0 0 auto; /* Forces side columns to stay same width */
    width:100px; /* Sets the width of side columns */
}
img {
    max-width:100%; /* Shrinks images to fit container */
}
Run Code Online (Sandbox Code Playgroud)