2016-01-30 6 views
5

ブートストラップとグリッドに慣れようとしています。私は、次のマクロレイアウトを作成しようとしています。ブートストラップ3.3.6グリッド境界がリジッド構造を持たない

=================================================== 
| PageTitle    |________________________| 
|________________________| +1 |________| img| img| 
| Make a choice.   |_____|________|____|____| 
|      |      | 
=================================================== 

主な要素は、そこに行があるジャンボトロンです。私は次に行を2つの<div>の要素にそれぞれ分割してclass="col-xs-12"としました(左側のパネルをモバイル上の右側に残したい)。

左パネルは、テキストコンテンツを含む2つの行にさらに分割されています。

右側のパネルには行が含まれており、再び2つのセクションに分割されています。左右のセクションはともにclass="col-xs-12 col-sm-3"です。これは、小さなスクリーンでは、それぞれが互いに重なり合って水平方向の空間全体を満たすようにするためです。列とそれ以上の列下部構造は、図示のように空間を分割する。あなたが見ることができるようになりますと、私は(768px未満)XSサイズで期待通り、レイアウトが動作しているLink

はここで、これまでに私のコードです。しかし、サイズが大きくなると、右側のパネルの行と列が重なってしまい、画像が消えてしまいます。

グリッドが期待通りに動作しない理由(つまり、さまざまな画面サイズでインテリジェントにリフローするテーブル)を理解する上でのガイダンスは高く評価されます。

+0

実際にすべての要素に 'height'属性と' width'属性がある理由はありますか?私はあなたがグリッドシステムが実際にどのように動作するかを理解しているようには見えないので、ブートストラップのドキュメントを読む必要があると思います。 'row'というクラスを持つ' div'タグもたくさんありますが、内部に列はありません。全体として、ランダムなクラスをミックスしてマッチングします。 – michael

+0

高さと幅は、col - * - *に適切な解像度で適切な量の画面を表示させることができるかどうかを確認するためだけにありました。それはうまくいかなかった。それらを削除すると、列が重なります。 –

+0

2つの列には列がありません。これらは、私が望むのとまったく同じように表示されます。この例の関連部分には、この問題はありません。私は実際に上から下へブートストラップ・ドキュメントを読んでいます。それが私がこの質問をしている理由です。おそらく、グリッドがどのように動作するのか誤解しているのかもしれません。 –

答えて

5

小さなデバイスの右側のパネルのグリッド構造が間違っているようです。

JSFiddleのコードスニペットにあります。行番号17 and 32class="col-xs-6 col-sm-3"class="col-xs-6 col-sm-6"に変更します。

これにより、イメージが再び表示されます。

更新:

することができます勿論の、あなただけのアプローチを構築するためにあなたの撮影を変更する必要があり、どのような構造が可能です。 this Fiddleを確認してください。これは、行と列の下の列を、理解しやすい方法で列構造で表示します。

あなたが必要とすることは、構造を4つの列に分割し、各列内の任意のものを実行することです。あなたの構造が必要とどのように多くの列を決定し

  • まず:任意の複雑な構造に近づくと理解する

    最も簡単な方法。一番上のものは、列を考慮して常に分割する必要があります。

  • カラムが決まると、各カラムをフルサイズのページと見なして(もう一方のカラムは無視してください)、再び分割します。

シンプル:-)

+0

この回答に感謝します。それはイメージを再現させました。私の質問は、互いに隣り合っている列の整列と、なぜ重複してしまうのかということに関連していました。私の理解では、水平な12個のカラムがあり、特定の解像度で最上位のカラムの総数が12個になる限り、行とカラムの構造を使ってスペースを細分することができました。これは私の実験からのケース。 1列の要素内に12列しか正しく配置されません。レイアウトの問題がさらに発生します。 –

+0

更新された回答を確認してください。私はそれがあなたの質問に答えると思います。 –

+0

ありがとうNikhil!それはまさに私が直面していた直感です。今はもっと意味があります:) –

0

私が求めていた質問はどのような方法で明確ではありませんでしたが、ここで私がしようとしたものである場合、私はお詫び申し上げます。うまくいけば、質問と回答サイド・バイ・サイドを見ることは明確に役立ちます。

HTML

<div class="row"> 
    <div class="col-xs-12 col-sm-5"> 
    <h2> 
     PageTitle. 
    </h2> 
    </div> 
    <div class="col-xs-6 col-sm-1 text-center"> 
    <h2> 
     +1 
    </h2> 
    </div> 
    <div class="col-xs-6 col-sm-2"> 
    <div class="statsbox"> 
     <div class="statsbaryes"> 
     </div> 
     <div class="statsbarno"> 
     </div> 
    </div> 
    </div> 
    <div class="col-xs-6 col-sm-2 text-center"> 
    <img id="image1" alt="image" src="http://www.intuac.com/userport/john/btpc5/baboon.png" class="img-circle" /> 
    </div> 
    <div class="col-xs-6 col-sm-2 text-center"> 
    <img id="image2" alt="face" src="http://www.intuac.com/userport/john/btpc5/baboon.png" class="img-circle" /> 
    </div> 
</div> 

CSS

.statsbaryes { 
    height: 30px; 
    background-color: green; 
    width: 20%; 
} 
.statsbarno { 
    height: 30px; 
    background-color: red; 
    width: 80%; 
} 
.statsbox { 
    height: 66px; 
    right: 0px; 
    width: 100%; 
    border: 3px solid grey; 
} 

https://jsfiddle.net/z9jvnahd/

Nikhilの答えに言及したように、レイアウトの構造を助けたいと思っていたのと同じくらい多くの行/列細分化のレイヤーを持つことができたという誤解から問題が生じました。論理行を画面に表示します。しかし、これは当てはまりません。私の実験では、正しく動作するためには、列をsignleのトップレベルの行にまとめてグループ化する必要があるようです。

+0

更新された回答を確認してください。私はそれがあなたの質問に答えると思います。 –

関連する問題