我有一個包裝和兩個元素:左div和右div。左邊的div只包含可能非常長的文本。正確的div包含圖像這是異步加載,我們不知道它的寬度:兩列布局 - 如果左欄寬度較小,將右欄移動到下一行
<div id="wrapper">
<div id="left">TEXT TEXT TEXT TEXT</div>
<div id="right">IMAGE</div>
</div>
我要顯示這樣的一切:
+-----------------------------+ | | | #wrapper | | | | +----------+ +--------+ | | | | | | | | | #left | | #right | | | | | | | | | +----------+ +--------+ | | | +-----------------------------+
要做到這一點,我準備這個CSS:
#wrapper{
width: 600px;
display: inline-block;
}
#left{
float: left;
width: 400px;
}
#right{
float: left;
width: 200px;
}
現在我想添加一些響應此佈局。左格的最小寬度應爲200像素,因此,如果在右邊的圖像大於400像素寬應該到下一行和左格應增長到包裝的100%,以這樣的方式
+-----------------------------+ | | | #wrapper | | | | +----------------------+ | | | | | | | #left | | | | | | | +----------------------+ | | | | +--------------+ | | | | | | | #right | | | | | | | +--------------+ | | | +-----------------------------+
如何我可以做到這一點,而不使用JavaScript?
我發現這個解決方案:http://jsfiddle.net/fxWg7/1865/和唯一的區別是,我需要的是當左div是小的,然後右div應該去下一行而不是左div。
應該是這樣的:
#left.width = #wrapper.width - #right.width;
if (#left.width < 200px) {
#left.width = 100%;
#right move to new line;
} else {
display #left div on left side and #right div next to #left div
}
感謝您的回覆,但這不是我真正需要的。我無法定義左側div的最大寬度,因爲我不知道這個值。 – Temp 2014-09-13 13:49:09
@Temp而不是最大寬度,你可以使用寬度嘗試,如果這是足夠的 – Akshay 2014-09-13 14:22:06
#left.width =#wrapper.width - #right.width。我不知道#right.width,所以我無法計算#left.width。它必須通過網絡瀏覽器自動計算。 – Temp 2014-09-13 15:09:45