2015-11-15 73 views
1

有沒有辦法實現以下目標?使用flexbox全部或全部包裝

從單行上的三個項目開始,如果總寬度超過了flex父寬度,則捕捉到列方向。

對於我的特定用例,解決方案的主要限制是我無法使用媒體查詢來交換柔性方向,儘管這可能是最容易做的事情。

媒體查詢不是一個可行的解決方案這種情況下,因爲該組件是獨立的,可以放置在各種位置,這將決定容器的寬度獨立於瀏覽器寬度。如果有媒體查詢可以基於父容器而不是頁面的魔術,那就太棒了,但是到目前爲止我還沒有看到類似的東西。

在這種fiddle較長的名字第二個div需要被包裝成三行,但我可以得到最接近的是兩條線。

<div class="container"> 
    <span class="item">Dan Martinez&nbsp;</span> 
    <span class="item">@DanMartinez101&nbsp;</span> 
    <span class="item">an hour ago&nbsp;</span> 
</div> 

<br/> 

<div class="container"> 
    <span class="item">Someone with a really long name&nbsp;</span> 
    <span class="item">@AndAReallyLongHandle&nbsp;</span> 
    <span class="item">about three million years ago&nbsp;</span> 
</div> 

.container { 
    display: flex; 
    flex-wrap: wrap; 
    width: 400px; 
    background-color: 'red'; 
} 

.item { 
    white-space: nowrap; 
    flex: 0 1 auto; 
} 
+1

這是要去要求JS。 –

+0

* ...媒體查詢不能用於交換靈活方向... *不正確。通過媒體查詢可以輕鬆改變'flex-direction'。 –

+1

@Michael_B對不起,沒有更清楚地說明這個約束。我的意思是,雖然這將工作,並且是最簡單的解決方案,但我無法在當前的應用程序中這樣做。我會更新我的問題,以便更清楚。 –

回答