这是我的代码:http://jsfiddle.net/2Mtcq/。
我希望中间列是流动的,但是左右柱 - 要设置宽度。我如何制作中间液体?我希望它看起来像:
https://dl.dropboxusercontent.com/u/22358199/Screen%20Shot%202013-05-31%20at%2011.00.31%20AM.png
body {
margin:10px;
}
#header {
width:600px;
background-color: #f0efee;
}
#main{
width:600px;
}
#leftcol {
background-color: #f0efee;
float:left;
margin: 10px 10px 10px 0;
width:100px;
}
#midcol {
background-color: #FFC;
margin: 10px 10px 10px 0;
float:left;
}
#rightcol {
background-color: #FCF;
float: left;
margin: 10px 0 10px 0;
width:100px;
}
#footer {
width:600px;
background-color: #f0efee;
clear:both;
}
答案 0 :(得分:1)
将您的HTML更改为:
<div id="main">
<div id="leftcol">Left</div>
<div id="rightcol">Right</div>
<div id="midcol">Middle middle Middle middle Middle middle</div>
</div>
midcol
和left
之后放了right
。在你的CSS中:
rightcol
元素与right
一起展开。midcol
的边距更改为margin: 0 110px;
(从左侧和右侧,每个110px
:100px
为列,10px
为间隙。margin: 10px 0;
添加到#main
元素。你在这里:
#main {
width:600px;
margin: 10px 0;
}
#leftcol {
background-color: #f0efee;
float:left;
width:100px;
}
#midcol {
background-color: #FFC;
margin: 0 110px;
}
#rightcol {
background-color: #FCF;
float: right;
width:100px;
}
另外,您可以将#main
宽度设为100%
,以获得整页宽度:
#main {
width: 100%;
margin: 10px 0;
}
答案 1 :(得分:1)
如果您不支持IE8,可以在CSS上使用calc。
#midcol {
background-color: #FFC;
margin: 10px 10px 10px 0;
float:left;
width: calc(100% - 220px);
}
有关浏览器支持的信息click here
答案 2 :(得分:0)
试试这个
#midcol {
min-width:100px;
width:auto;
background-color: #FFC;
margin: 10px 10px 10px 0;
float:left;
}
答案 3 :(得分:0)
看看这个,给出一个解释:Div width 100% minus fixed amount of pixels
它解释了所有细节
我看到的最佳解决方案是使用该链接中所述的css calc
。
示例:http://jsfiddle.net/2Mtcq/7/
#midcol {
background-color: #FFC;
margin: 10px 10px 10px 0;
float:left;
width: -moz-calc(100% - 220px);
width: -webkit-calc(100% - 220px);
width: calc(100% - 220px);
}
浏览器支持calc:http://caniuse.com/calc
你可以使用它,最糟糕的情况是JS后备。