2015-03-18 56 views
0

假设我有一些div,如:如何设置几个嵌套div的相对位置?

<div id="div0"> 
    <div id="div1"></div> 
    <div id="div2"></div> 
    <div id="div3"></div> 
</div> 

DIV0,DIV1和DIV3有固定的高度。现在我想让div2自动展开,以便占用所有剩余的空间。有没有办法做到这一点? 以这个http://codepen.io/anon/pen/XJorMb为例,我想让蓝色方块坐在中间,占据所有剩余的空间。

回答

1

你可以用flex做到这一点:

#fixedPanel { 
 
    position:fixed; 
 
    width: 350px; 
 
    height:150px; 
 
    border-style: solid; 
 
    border-width: 5px; 
 
    display:flex; 
 
    flex-direction:column; 
 
} 
 
#div1 { 
 
    height: 20px; 
 
    border-style: solid; 
 
    border-width: 1px; 
 
    border-color: red; 
 
} 
 
#div2 { 
 
    flex:1; 
 
    border-style: solid; 
 
    border-width: 1px; 
 
    border-color: blue; 
 
} 
 
#div3 { 
 
    height: 20px; 
 
    border-style: solid; 
 
    border-width: 1px; 
 
    border-color: green; 
 
}
<div id="fixedPanel"> 
 
    <div id="div1"> 1 </div> 
 
    <div id="div2"> 2 </div> 
 
    <div id="div3"> 3 </div> 
 
</div>

display:table;

#fixedPanel { 
 
    position:fixed; 
 
    width: 350px; 
 
    height:150px; 
 
    border-style: solid; 
 
    border-width: 5px; 
 
    display:table; 
 
    border-collapse:collapse; 
 
} 
 
#fixedPanel > div { 
 
display:table-row; 
 
} 
 
#div1 { 
 
    height: 20px; 
 
    border-style: solid; 
 
    border-width: 1px; 
 
    border-color: red; 
 
} 
 
#div2 { 
 
    height:100%; 
 
    border-style: solid; 
 
    border-width: 1px; 
 
    border-color: blue; 
 
} 
 
#div3 { 
 
    height: 20px; 
 
    border-style: solid; 
 
    border-width: 1px; 
 
    border-color: green; 
 
}
<div id="fixedPanel"> 
 
    <div id="div1"> 1 </div> 
 
    <div id="div2"> 2 </div> 
 
    <div id="div3"> 3 </div> 
 
</div>

1

是的,对于行使用tabletable-cell

http://jsfiddle.net/vrt2s232/1/

html, body { 
    margin: 0; 
    height: 100%; 
} 

#div0 { 
    display: table; 
    height: 100%; 
} 

#div0 > div { 
    display: table-row; 
} 

#div1, #div3 { 
    height: 100px; 
    background: blue; 
} 

#div2 { 
    background: red; 
} 
#div0 > div { 
    display: table-cell; 
} 

#div1, #div3 { 
    width: 100px; 
    background: blue; 
} 

#div2 { 
    background: red; 
} 

为列:

http://jsfiddle.net/vrt2s232/