2016-02-13 46 views
3

我有一行,其中一列可以在高度不同,所以我不知道它會有多高。爲了正確地將相鄰列間隔開,我使用了嵌套的彈性盒。Flexbox打破自舉反應

這在主要斷點上工作正常,但只要我添加彈性框,那麼這會打破響應性,因爲列不再移動到移動設備上。

我應該在這裏做什麼?我應該放棄flexbox嗎?我還能如何實現這個間隔?

.container{ 
 
    margin-top: 60px; 
 
} 
 
.container{ 
 
    border: 1px solid #000; 
 
} 
 
.row{ 
 
    display: flex; 
 
} 
 
.row-center{ 
 
    display: flex; 
 
    flex: 1; 
 
} 
 

 
.outer{ 
 
    display: flex; 
 
    flex-direction: column; 
 
    justify-content: space-around; 
 
    border: 1px solid #000; 
 
    width: 100%; 
 
} 
 

 
.one, .two, .three{ 
 
    flex: 0 0 40px; 
 
    border: 1px solid #000; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/> 
 

 

 
<div class="container"> 
 
    <div class="row"> 
 
    <div class="col-xs-12 col-sm-6"><img src="http://placehold.it/350x500"></div> 
 
    <div class="col-xs-12 col-sm-6 row-center"> 
 
     <div class="outer"> 
 
     <div class="one">some text</div> 
 
     <div class="two">some text</div> 
 
     <div class="three">some text</div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

的jsfiddle鏡:https://jsfiddle.net/y68dnzwy/

+0

[Bootstrap 4](http://v4-alpha.getbootstrap.com/)內置flexbox支持。也許這會有所幫助? –

+0

我仍然瞄準IE8。我不介意在這裏和那裏使用flexbox來嵌套內容,因爲IE8的佈局仍然清晰,但如果我製作整個網格系統flexbox,那麼我完全失去了IE8&9 – Guerrilla

回答

1

可能是這樣幫助你:

.container{ 
 
    margin-top: 60px; 
 
} 
 
.container{ 
 
    border: 1px solid #000; 
 
} 
 
.row{ 
 
    display: flex; 
 
} 
 
.row-center{ 
 
    display: flex; 
 
    flex: 1; 
 
} 
 

 
.outer{ 
 
    display: flex; 
 
    flex-direction: column; 
 
    justify-content: space-around; 
 
    border: 1px solid #000; 
 
    width: 100%; 
 
} 
 

 
.one, .two, .three{ 
 
    flex: 0 0 40px; 
 
    border: 1px solid #000; 
 
} 
 
/* Added: */ 
 
@media screen and (min-width:100px) and (max-width: 980px) { 
 
    .row-center { 
 
    flex: auto; 
 
    } 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/> 
 
<div class="container"> 
 
    <div class="row"> 
 
    <div class="col-xs-12 col-sm-6"><img src="http://placehold.it/350x500"></div> 
 
    <div class="col-xs-12 col-sm-6 row-center"> 
 
     <div class="outer"> 
 
     <div class="one">some text</div> 
 
     <div class="two">some text</div> 
 
     <div class="three">some text</div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

Demo

+0

謝謝。我認爲寫出媒體查詢來處理佈局可能會首先破壞使用引導程序的目的。有沒有更好的方法,不涉及flexbox? – Guerrilla

+0

順便說一句,我檢查了你的代碼片段,列仍然不堆疊 – Guerrilla