일정영역을 전체화면의 나머지 부분으로 채우기 위한 샘플
display 의 table, table-row를 사용해 디자인
<style>
.container {
padding : 10px;
width : 100%;
height : 100%;
background : yellow;
}
.table {
display : table;
border-collapse : collapse; // 각 row의 외곽선을 표시하기 위해서 설정
width : 100%;
height : 100%;
}
.row {
display : table-row;
border : 2px solid;
}
.row1 {
height : 50px;
background : #e5e5cf
}
.row2 {
height : 50px;
background : #c2dfc2;
}
.row3 {
background : #cdcdcd;
position : relative;
}
.body {
width : 100%;
position : absolute;
top : 0;
bottom : 0;
background : #bfc3c3;
overflow : overlay;
}
table {width:100%;}
table,tr,td {border:1px solid #BBBBBB;}
</style>
<div class="container">
<div class="table">
<div class="row row1">
header
</div>
<div class="row row2">
middle
</div>
<div class="row row3">
<div class="body ">
<table>
// 샘플로 데이터를 채운다.
<c:forEach varStatus="obj" begin="1" end="100" step="1">
<tr><td>${obj.index}</td></tr>
</c:forEach>
</table>
</div>
</div>
</div>
</div>
단, 높이를 맞추기 위해 상위 header,middle 의 높이가 변경될때마다 아래부분 div의 top 값을 그에 맞게 조정해줘야 한다.
.a {position:relative; width:100%; height:100%; background:yellow;}
.b {position:absolute; top:0; bottom:0; left:0; right:0; margin:10px;}
.x {background:#e5e5cf; height:50px;
border : 2px solid;
}
.y {background:#c2dfc2; height:50px;
border-style:solid;
border-width:0 2px 2px 2px;
}
.z {background:#cdcdcd; position:absolute; bottom:0; left:0; right:0; top:100px; overflow:overlay;
border-style:solid;
border-width:0 2px 2px 2px;
}
table {width:100%;}
table,tr,td {border:1px solid #BBBBBB;}
</style>
<div class="a">
<div class="b">
<div class="x">header</div>
<div class="y">middle</div>
<div class="z">
<table>
<c:forEach varStatus="obj" begin="1" end="100" step="1">
<tr><td>${obj.index}</td></tr>
</c:forEach>
</table>
</div>
</div>
</div>