我有3个div的情况,第一个和第三个div有宽度。我希望第二个div填满剩余的空间。
小提琴:http://jsfiddle.net/YzUQy/
#div1{
height:auto;
text-align:center;
width:290px;
left:0;
float:left;
border: 1px solid #ccc;
}
#div2{
float:left;
overflow: scroll;
border: 1px solid #ccc;
}
#div3{
width: 420px;
border: 1px solid #ccc;
right:2px;
padding:10px;
float:right;
}
答案 0 :(得分:3)
使用display:table
和display:table-cell
:http://jsfiddle.net/YzUQy/4/
CSS:
#div1{
height:auto;
text-align:center;
width:290px;
left:0;
border: 1px solid #ccc;
}
#div2{
overflow: scroll;
border: 1px solid #ccc;
}
#div3{
width: 220px;
border: 1px solid #ccc;
right:2px;
padding:10px;
}
#container{
display: table;
width:700px;
}
#container > div{
display:table-cell;
}
答案 1 :(得分:3)
您可以使用calc():
#div2{
float:left;
overflow: scroll;
border: 1px solid #ccc;
width: calc(100% - 420px - 20px - 6px - 290px);
/* 100% - div3 width - div3 padding - borders - div1 width */
}
浏览器支持:caniuse
答案 2 :(得分:2)
你需要这个:(以及将来的参考资料)
http://www.dynamicdrive.com/style/layouts/category/C13/
特别是,您需要此链接:http://www.dynamicdrive.com/style/layouts/item/css-liquid-layout-31-fixed-fluid-fixed/
<div class="content-wrapper">
<div class="content">
</div>
<div class="left"></div>
<div class="right"></div>
.content-wrapper {
float: left;
width: 100%;
}
.content {
margin: 0 200px 0 230px; /* set to the widths of right and left columns */
}
.left {
float: left;
width: 230px;
margin-left: -100%;
background: #C8FC98;
}
.right {
float: left;
width: 200px;
margin-left: -200px;
background: #FDE95E;
}
答案 3 :(得分:1)
您可以使用中心元素的绝对定位,如下所示:
#container {
position:relative;
}
#div1{
height:auto;
text-align:center;
width:290px;
left:0;
float:left;
border: 1px solid #ccc;
}
#div2{
position:absolute;
overflow: scroll;
border: 1px solid #333;
left:292px; /* total width of div1 */
right:442px; /* total width of div2 */
}
#div3{
width: 420px;
border: 1px solid #ccc;
right:2px;
padding:10px;
float:right;
}
总宽度我的意思是包括填充和边框(除非你使用你不在这里的边框规格)
答案 4 :(得分:1)
您可以使用flex布局。这是一个小提琴:http://jsfiddle.net/fred02138/JDqQu/
<div id="outer">
<div id="div1">div1</div>
<div id="div2">div2</div>
<div id="div3">div3</div>
</div>
CSS:
#outer {
display: -webkit-flex;
-webkit-flex-direction: row;
display: flex;
flex-direction: row;
width: 100%;
}
#div1{
height:auto;
text-align:center;
width:290px;
left:0;
border: 1px solid #ccc;
}
#div2{
overflow: scroll;
border: 1px solid #ccc;
-webkit-flex: 1 1 auto;
flex: 1 1 auto;
}
#div3{
width: 420px;
border: 1px solid #ccc;
right:2px;
padding:10px;
}