雖然javascript有一個簡單的解決方案,但我希望找到一個僅限於CSS的解決方案(最有可能使用CSS3,flexbox佈局)。僅限於CSS的佈局解決方案(flexbox?)
如果父框(或畫面)是足夠寬,我想有以下佈局:
|<- 100% width ->|
+------------------+--------------------------------+------------------+------------------+
| P1 - fixed width | P2 - min width, grow as needed | P3 - fixed width | P4 - width width |
+------------------+--------------------------------+------------------+------------------+
但是,如果可用寬度小於P1 + P2 + P3 + P4,則佈局應該改變到
|<- 100% width ->|
+------------------+--------------------------------+------------------+
| P1 - grow to 100% width |
+------------------+--------------------------------+------------------+
| P2 - min width, grow as needed | P3 - fixed width | P4 - width width |
+------------------+--------------------------------+------------------+
爲了討論起見,我們假設父母總是至少P2 + P3 + P3寬。
我正在考慮將四個方塊放入一個彈性父親,將固定寬度的孩子的flex-grow
設置爲0,將P2設置爲1。然後我會以相反的順序添加它們並設置flex-flow: row-reverse wrap-reverse
。如果沒有足夠的空間,這會將P1推到一個單獨的行上,但是如何使它增長到100%的寬度?
我真的很想在這裏避免使用javascript,但是如果需要的話,我會把它作爲最後的手段。
請問父盒有固定最大寬度以開始還是我們處理一個全屏寬度? – chdltest 2014-11-20 22:18:14
@chdtest父框寬度設置爲'calc(100% - 20px)',因此它與屏幕寬度相關。 – 2014-11-20 22:25:05
你不是在尋找這樣的東西,對吧? http://jsfiddle.net/6y5hn/7/ – chdltest 2014-11-20 22:52:30