現在flexboxを使用してレスポンシブデザインのコーディングを行っているのですが、実現できない表示があり困っています。
下記のようなソースで「.leftColumn」「.centerColumn」「.rightColumn」のwidthをそれぞれ
・スマートフォン:全て100%で縦に並べる
・タブレット:「.leftColumn」「.rightColumn」をそれぞれ50%、「.centerColumn」を100%としてleft・rightの下に表示
・PC:「.leftColumn」「.rightColumn」をそれぞれ25%、「.centerColumn」を50%として1:2:1の割合で表示
としたいのですが、タブレットでの表示がうまくいきません。
flexboxでの表示順位指定する「order」プロパティを入れてみたのですがcenterColumnがうまく下に落ちてくれませんでした。
どのように組めば想定した表示が可能でしょうか。どうかお力をお貸しください。
<html>
<code> <div class="container"> <div class="leftColumn order1"> <div class="contentBox"> ~コンテンツ~ </div><!-- /contentBox --> </div><!-- /leftColumn --> <div class="centerColumn order3"> <div class="contentBox"> ~コンテンツ~ </div><!-- /contentBox --> </div><!-- /centerColumn --> <div class="rightColumn order2"> <div class="contentBox"> ~コンテンツ~ </div><!-- /contentBox --> </div><!-- /rightColumn --> </div><!-- /container --> </code>
<css>
<code> .leftColumn, .centerColumn, .rightColumn { box-sizing: border-box; padding: 10px; width: 100%; } .contentBox { margin-bottom: 1em; } /* メディアクエリ media query */ @media screen and (max-width: 480px) { } @media screen and (min-width: 481px) and (max-width: 768px) { .container { display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex; } .leftColumn, .rightColumn { width: 50%; } .centerColumn { width: 100%; } .order1 { order: 1; } .order2 { order: 2; } .order3 { order: 3; } } @media screen and (min-width: 769px) { .container { display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex; } .leftColumn { width: 25%; } .centerColumn { width: 50%; } .rightColumn { width: 25%; } } </code>
回答1件
あなたの回答
tips
プレビュー