5

我使用引導V4的α4如何使用Bootstrap在響應視圖中分割列?

目前我有:

.row 
    .col-xs-12.col-md-8 
    div A 
    .col-xs-12.col-md-4 
    div B 
    div C 

對於XS佈局,我想在div爲了:

Div B 
Div A 
Div C 

我有不知道如何做到這一點或如何甚至詢問它。我不是前端開發人員,所以我不知道要調用什麼東西。

我們可以將HTML更改爲任何我們想要的。它確實不是必須保持現在的樣子。

enter image description here

+0

我不認爲在引導程序中有任何類可以改變元素的順序。 –

+0

@Mr_Green fwiw,當前使用的HTML結構未鎖定。我們可以做任何我們想做到的事情。 – naomik

+0

您是否嘗試過使用Flexbox? – Olga

回答

2

相反的Flexbox的,我用的floatposition CSS屬性的組合,以獲得預期的結果。假設寬度爲150px,寬度爲100px

Working Fiddle

.container { 
 
    width: 250px; 
 
    position: relative; 
 
} 
 
.blue { 
 
    width: 150px; 
 
    height: 300px; 
 
    background: blue; 
 
    position: absolute; 
 
} 
 
.pink { 
 
    width: 100px; 
 
    height: 100px; 
 
    background: pink; 
 
    float: right; 
 
} 
 
.green { 
 
    width: 100px; 
 
    height: 100px; 
 
    background: green; 
 
    clear: right; 
 
    float: right; 
 
} 
 
@media (max-width: 450px) { 
 
    .blue { 
 
    position: relative; 
 
    } 
 
    .green, 
 
    .pink { 
 
    float: none; 
 
    width: 150px; 
 
    } 
 
}
<div class="container"> 
 

 
    <div class="pink"></div> 
 
    <div class="blue"></div> 
 
    <div class="green"></div> 
 
</div>

+0

謝謝。如果我正在寫香草CSS,這正是我期待的。 – naomik

+0

@naomik是的。請注意,這隻有在知道父母的寬度時纔有效。 –

3

所以使用自舉和一些一般風格的類,你可以達到像我在這支筆中做的那樣。

http://codepen.io/TunderScripts/pen/PGadpr

的HTML:

<div class="row"> 
    <div class="col-xs-12 col-md-4 pull-right col1"></div> 
    <div class="col-xs-12 col-md-8 pull-left col2"></div> 
    <div class="col-xs-12 col-md-4 pull-right col3"></div> 
</div> 

的CSS:

.col1{ 
    background: red; 
    height: 200px; 
} 
.col2{ 
    background: blue; 
    height: 600px; 
} 
.col3{ 
    background: green; 
    height: 200px; 
} 

您可以使用自己的類彩車更改默認行爲(拉左,右拉) 。

+0

這是稍微超過指定的,但它也適用。非常感謝你。我不知道'pull- *'類 – naomik

2

正如所承諾的,一個簡單的draft

HTML

<div class="row"> 
    <div class="col1">DIV A</div> 
    <div class="col2">DIV B</div> 
    <div class="col3">DIV C</div> 
</div> 

CSS

.row { 
    display: flex; 
    flex-wrap: wrap; 
    flex-direction: row; 
    justify-content: space-between; 
    width: 400px; 
    margin: 0 auto; 
} 

.col1 { 
    width: 200px; 
    height: 400px; 
    background-color: #86a0ff; 
} 

.col2 { 
    width: 150px; 
    height: 150px; 
    background-color: #ff6cde; 
} 

.col3 { 
    margin-top: -200px; 
    margin-left: auto; 
    width: 150px; 
    height: 150px; 
    background-color: #35af6d; 
} 

@media (max-width: 768px) { 
    .row { 
    justify-content: center; 
    flex-direction: column; 
    } 

    .col1 { 
    order: 2; 
    width: 200px; 
    margin-top: 50px; 
    } 

    .col2 { 
    order: 1; 
    width: 200px; 
    } 

    .col3 { 
    order: 3; 
    width: 200px; 
    margin-top: 50px; 
    margin-left: 0; 
    } 
} 

至於解釋,這裏是一個偉大的guide了flexbox。在我的例子中,主要思想是通過使用順序屬性可以控制塊顯示的順序。使用flexbox的主要優點是您不需要加載任何庫(如Bootstrap)以實現所需的結果,例如響應。它也有一個很好的瀏覽器support,除非你需要支持舊版本的瀏覽器。我希望我的回答對你有幫助!

+0

謝謝。 flexbox對我來說很陌生。很高興看到它適用於我已經看到解決其他方式的問題。 – naomik

相關問題