メディアクエリを使用して div 内の要素の順序と位置を変更するにはどうすればよいですか? 次の画像は、目的の動作を示しています (ブラウザ ウィンドウの幅が 1000px より小さい場合は左の画像を使用し、大きい場合は 2 番目の画像を使用します)。
最初のケースで「通常の」配置を使用し、2番目のケースでフロートを使用する最初の試み:
.box2 {
float: right;
}
しかし、要素 2 (緑) はコンテナーの右端に配置されます。最初の要素に近くありません。
メディアクエリを使用して div 内の要素の順序と位置を変更するにはどうすればよいですか? 次の画像は、目的の動作を示しています (ブラウザ ウィンドウの幅が 1000px より小さい場合は左の画像を使用し、大きい場合は 2 番目の画像を使用します)。
最初のケースで「通常の」配置を使用し、2番目のケースでフロートを使用する最初の試み:
.box2 {
float: right;
}
しかし、要素 2 (緑) はコンテナーの右端に配置されます。最初の要素に近くありません。
FF と IE では十分にサポートされていませんが、flex-box モデルはそれを行うための正しい方法です (少なくとも概念的には、実用的な目的ではないにしても)。クロムでこれをチェックしてください:
主な部分は次のとおりです。
#container1 {
width: 200px;
height: 200px;
display: -webkit-flex;
-webkit-flex-wrap:wrap;
-webkit-flex-direction:row;
-webkit-justify-content:center;
-webkit-align-items:center;
}
#container2 {
width: 400px;
height: 150px;
display: -webkit-flex;
-webkit-flex-direction:row-reverse;
-webkit-justify-content:space-around;
-webkit-align-items:center;
}
これを試して
<head runat="server">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
</head>
<body>
<style type="text/css">
@media (max-width: 1000px)
{
.container
{
width: 200px;
height: 200px;
}
.box1
{
margin: 26px 24px;
}
.box2
{
margin: 13px;
}
}
@media (min-width: 1000px)
{
.container .box1
{
float: right;
}
.container
{
width: 400px;
height: 150px;
}
.box1
{
margin: 50px 31px;
}
.box2
{
margin: 31px;
}
}
.container
{
border: 1px solid black;
}
.box1
{
width: 150px;
height: 40px;
background-color: #97D077;
}
.box2
{
width: 170px;
height: 80px;
background-color: #FFB366;
}
</style>
<div class="container" id="container1">
<div class="box1">
text</div>
<div class="box2">
img</div>
</div>
</body>
</html>