2017-08-07 12 views
0

ウィンドウを縮小するときにdivブロックを「並べ替える」ことは可能ですか? たとえば、青いdivの前に赤いdivが表示されます.0-770pxの幅のウィンドウに縮小します。しかし、ウィンドウが最小の​​とき。 771ピクセル、青いdivは赤いdivの前に表示されます。スケーリング時にdivを並べ替える

私はJavascriptを使用することはできませんが、javascriptを使用しない解決策は不十分です。

ありがとうございました!

@charset "utf-8"; 
 

 
/* CSS Document */ 
 

 
#wrapper { 
 
    width: 1000px; 
 
    height: auto; 
 
    background-color: grey; 
 
} 
 

 
#boks-green { 
 
    width: 50%; 
 
    background-color: green; 
 
    height: 400px; 
 
    display: block; 
 
    float: left; 
 
} 
 

 
#boks-blue { 
 
    width: 50%; 
 
    background-color: deepskyblue; 
 
    height: 400px; 
 
    display: block; 
 
    position: relative; 
 
    float: left; 
 
} 
 

 
#boks-red { 
 
    width: 50%; 
 
    background-color: red; 
 
    height: 400px; 
 
    display: block; 
 
    position: relative; 
 
    float: left; 
 
} 
 

 
#boks-purple { 
 
    width: 50%; 
 
    background-color: purple; 
 
    height: 400px; 
 
    display: block; 
 
    position: relative; 
 
    float: left; 
 
} 
 

 
@media only screen and (max-width: 770px) { 
 
    #boks-green { 
 
    width: 100%; 
 
    background-color: green; 
 
    height: 400px; 
 
    display: block; 
 
    float: left; 
 
    } 
 
    #boks-blue { 
 
    width: 100%; 
 
    background-color: deepskyblue; 
 
    height: 400px; 
 
    display: block; 
 
    position: relative; 
 
    float: left; 
 
    } 
 
    #boks-red { 
 
    width: 100%; 
 
    background-color: red; 
 
    height: 400px; 
 
    display: block; 
 
    position: relative; 
 
    float: left; 
 
    } 
 
    #boks-purple { 
 
    width: 100%; 
 
    background-color: purple; 
 
    height: 400px; 
 
    display: block; 
 
    position: relative; 
 
    float: left; 
 
    } 
 
}
<div id="wrapper"> 
 
    <div id="boks-green"> 
 
    </div> 
 

 
    <div id="boks-blue"> 
 
    </div> 
 

 
    <div id="boks-red"> 
 
    </div> 
 

 
    <div id="boks-purple"> 
 
    </div> 
 

 
</div>

+0

これは[flexbox and order](https://css-tricks.com/snippets/css/a-guide-to-flexbox/#article-header-id-9)で可能です。 – jrenk

+0

[CSSのみでスワップDIV位置](https://stackoverflow.com/questions/17455811/swap-div-position-with-css-only) – rblarsen

+1

浮動小数点数と既知の高さの可能な複製はブロックで再生できますコンテキストを形成し、赤と青のボックスを交換https://codepen.io/anon/pen/dzNBdLクリアとオーバーフロー –

答えて

2

あなたは、今日quite well supportedである、flexboxを使用して検討するかもしれない場合は、簡単にこれを行うことができます。

最初にメディアクエリが必要な場合は、コンテナがflexコンテナの場合は、子のorder属性を使用して、その要素をどこに表示するかを選択できます。

だから私は使用します。

#boks-blue { 
order: 1; 
} 

#wrapper { 
    display: flex; 
    flex-direction: column; 
} 

メディアクエリの内側。

フレックスボックスhereについて詳しく知ることができます。また、非常にインタラクティブな方法で詳しく調べることもできます。here

+0

しかし、ラッパーが "ディスプレイ:フレックス"のとき、私のdivsはお互いの下に行くことはありませんが、horisontalを整列 –

+1

あなたが変更することができますこれは、ラッパーの 'flex-direction'を使用します。 'row'(デフォルト)、' column'、 'row-reverse'、' column-reverse'の値を取ることができます。 それを 'flex-direction:column'に入れるべきです。 主な回答にいくつかのドキュメントを追加しました。 – MisterJ

+0

@AdrianKirkegaardこの解決策が問題を解決した場合は、それを受け入れるべきです。 – MisterJ

関連する問題