2016-02-13 114 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