2014-06-18 264 views
-1

我有一個非常經典的佈局,我經常做到這一點,而且我總是在即興創作。我把圖片上的三個div分開(紅線)。我的問題始終是右下角:即使我修正了左側Div的大小,我將頂部div作爲float:right。我仍然不得不爲有問題的分區作弊,並以負邊距進行比賽。如何把一個div放在左邊,兩個div放在它的右邊

對於這個例子,這是很容易的,因爲兩個div(左和上)具有固定大小,但我想有一個響應靈活佈局的模式。

我已經在網上搜索,它接縫每個人都有他自己的解決方案,但我沒有找到任何清晰乾淨的美味解決方案。

有什麼想法?

three divs, two vertical on the right

預期的行爲是:

  1. 沒有固定的大小,其實,完全沒有上漿(讓元素取自己需要的地方)
  2. 如果有留在空間對,不要換一個新的路線。
  3. 如果沒有更多的空間,跳轉到一個新的生產線,但完全向左走(如display:inline-block預期)

這裏是一個的jsfiddle樣本:

即使有足夠的空間(寬度)與id='2' div,它跳轉到一個新行(因爲display:inline-block試圖將該div附加到id='2'的權利,當它找不到,它會去一個新的行,而不是去右id='1'

http://jsfiddle.net/zhamdi/zu5sU/6/

我知道有JS網格來做到這一點像 http://gridster.net/

但我不想要的東西拖放,只是一個簡單的適應性佈局

+0

可以爲您提供一個小提琴或一個鏈接? –

+0

不知道我是否理解正確,但如果你把另外兩個'div'放在另一個包含'div'的地方,是不是能解決你的問題? (我們確實需要代碼,最好是jsFiddle,以便知道你的問題究竟是什麼) – myfunkyside

+0

有時候有多種可能的方式來實現某些東西。只需選擇一個。 – Alohci

回答

1

一個快速的方式做到這一點是使用列布局。

你會把這兩個部分在自己的div:

JSFiddle Example

HTML

<div class="container"> 
    <div class="column"> 
     <div class="content one"> 
     </div> 
    </div> 
    <div class="column"> 
     <div class="content two"> 
     </div> 
     <div class="content two alt"> 
     </div> 
    </div> 
</div> 

CSS

.column{ 
    float: left; 
} 
.content{ 
    width: 100px; 
} 
.content.one{ 
    height: 200px; 
    background: red; 
} 
.content.two{ 
    height: 100px; 
    background:blue; 
} 
.content.two.alt{ 
    background:green; 
} 
+0

感謝Mathias,但您使用的是固定大小,我想要百分比的東西:如果右邊有空格,我不希望div轉到新的行,但沒有固定大小 –

+0

完全相同的前提下,只需使用百分數。http://jsfiddle.net/A23s4/1/ –

+0

@ZiedHamdi請注意,我只是展示了最少量的代碼來獲得積分 –

相關問題