CSS3
您可以使用CSS3 Flexible Box Layout Module實現這種動態行爲:的
<style type="text/css">
div.Container
{
width: 100%;
display: box;
display: -moz-box;
display: -ms-box;
display: -webkit-box;
}
div.B
{
background: magenta;
box-flex: 1;
-moz-box-flex: 1;
-ms-box-flex: 1;
-webkit-box-flex: 1;
}
</style>
<div class="Container">
<div style="width: 50px; background: cyan;">
A
</div>
<div class="B">
B
</div>
<div style="width: 50px; background: yellow;">
C
</div>
</div>
一個新版本的Firefox ,新版Google Chrome,Internet Explorer 10和的新版本Safari支持CSS3靈活的盒子佈局。 Internet Explorer 9和Opera目前缺乏支持。
我也想提一提這個新的方式做它在火狐:
<div style="float: left; width: 50px; background: cyan;">
A
</div>
<div style="float: left; width: -moz-calc(100% - 100px); background: magenta;">
B
</div>
<div style="float: left; width: 50px; background: yellow;">
C
</div>
火狐是支持calc
功能在目前的瀏覽器。
CSS2
這裏是舊的方式做到這一點:
<div style="padding-left: 100px;">
<div style="float: left; width: 50px; margin-left: -100px; background: cyan;">
A
</div>
<div style="float: left; width: 100%; margin-left: -50px; background: magenta;">
B
</div>
<div style="float: left; width: 50px; background: yellow;">
C
</div>
</div>
的100%
容器內div
的寬度是容器減去100px
左填充的寬度。然後有左右空間div元素50px
。然後你必須使用一些負邊界和浮動來定位它們。
特徵檢測
使用feature detection與Modernizr。然後,您可以將CSS2用於不支持CSS3 flexbox的瀏覽器。
如果你做.NET開發,你可以用NuGet下載Modernizr。
他的方法有問題。 如果我在Div3中放置一個塊元素(例如
- 測試
) – ridermansb