あなたの質問に答えるにはこれがあなたが必要とするすべてですプレフィックスcssで完全なレスポンシブデモを見ます:
/* Using col-xs media query breakpoint but you can change 481 to 768 to only apply to col-sm and above if you'd like*/
@media only screen and (min-width : 481px) {
.flex-row {
display: flex;
flex-wrap: wrap;
}
.flex-row > [class*='col-'] {
display: flex;
flex-direction: column;
}
.flex-row.row:after,
.flex-row.row:before {
display: flex;
}
}
上記のスクリーンショットのようにフレックス列内にサムネイルコンテンツフレックスのサポートを追加するには、これも追加します...これをパネルで行うこともできます:
.flex-row .thumbnail,
.flex-row .caption {
display: flex;
flex: 1 0 auto;
flex-direction: column;
}
.flex-text {
flex-grow: 1;
}
.flex-row img {
width: 100%;
}
flexboxはIE9以下では機能しませんが、JavaScriptグリッドなどの条件付きタグをポリフィルとして使用して、フォールバックでデモを使用できます。
<!--[if lte IE 9]>
<![endif]-->
受け入れられた回答の他の2つの例については...テーブルのデモはまともなアイデアですが、間違って実装されています。このCSSをブートストラップ列クラスに適用すると、グリッドフレームワークが完全に機能しなくなることは間違いありません。1つと2つのカスタムセレクターを使用する必要があります[class*='col-']
。幅が定義されているテーブルスタイルは適用しないでください。このメソッドは、高さと幅が等しい列が必要な場合にのみ使用してください。他のレイアウト用ではなく、応答しません。ただし、モバイルディスプレイではフォールバックできます...
<div class="table-row-equal">
<div class="thumbnail">
Content...
</div>
<div class="thumbnail">
Content...
</div>
</div>
@media only screen and (min-width : 480px){
.table-row-equal {
display: table;
width: 100%;
table-layout: fixed;
border-spacing: 30px 0px;
word-wrap: break-word;
}
.table-row-equal .thumbnail {
float: none;
display: table-cell;
vertical-align: top;
width: 1%;
}
}
最後に、1 つの真のレイアウトのバージョンを実装する、承認された回答の最初のデモは、状況によっては適切な選択ですが、ブートストラップ列には適していません。これは、すべての列がコンテナの高さまで拡張されるためです。したがって、列はその隣の要素ではなくコンテナ全体に拡張されるため、これも応答性を損なうことになります。この方法では、行に下マージンを適用することもできなくなり、タグをアンカーするためのスクロールのような他の問題も発生します。
完全なコードについては、フレックスボックスコードに自動的にプレフィックスを付けるCodepenを参照してください。