質問するログイン新規登録

Q&A

解決済

3回答

943閲覧

flexboxを使ってスマホの時要素の順序を変更

退会済みユーザー

退会済みユーザー

総合スコア0

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/07/18 04:12

編集2019/07/18 04:14

0

0

お世話になってます。
CSSとHTMLの学習を1からしようと思い、現在はflexboxについて学習しています。

そして、今実現したいのがfloatを使わずに、レスポンシブに以下のような図を作りたいです。

■ デスクトップ
デスクトップ

■ スマホ
スマホ

下記のようにデスクトップの方はできていますが、このコードだと
スマホの幅にした時に、サイドがフッターの下にきてしまいます。
htmlで、footerを一番下にしてあげたいのですが、
そうなるとsideの高さがfooterの横まで伸びません。

html

1<div id="wrapper"> 2 <div id="left"> 3 <div id="main1">main1</div> 4 <div id="main2">main2</div> 5 <div id="footer">footer</div> 6 </div> 7 <div id="right"> 8 <div id="side"></div> 9 </div> 10</div>

css

1#wrapper { 2 width: 1000px; 3 margin: 0 auto; 4 display: flex; 5 border: 2px solid black; 6} 7 8#left { 9 width: 75%; 10} 11 12#right { 13 width: 25%; 14} 15 16#main1, #main2, #footer, #side { 17 margin: 20px 10px; 18 border: 2px solid black; 19 text-align: center; 20} 21 22#main1, #footer { 23 height: 50px; 24} 25 26#main2 { 27 height: 100px; 28} 29 30#side { 31 height: calc(100% - 44px); 32} 33 34 35@media screen and (max-width: 599px) { 36 /* 37 ここで、sideをフッターの上に入れ、 38 結果、フッターを一番下にしたい 39 */ 40} 41

どのようにしたら良いでしょうか。
floatではできるのですが、今回は極力使いたくないです。
お力を貸していただけますと嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

m.ts10806

2019/07/18 04:14

reset.cssは入れられましたか?
退会済みユーザー

退会済みユーザー

2019/07/18 04:16 編集

こちら、choromeのみでとりあえず試したいなと思ってます。 この後、autoprefixerを使ってブラウザ対応したいと考えています。
退会済みユーザー

退会済みユーザー

2019/07/18 04:19

これは... リセットCSSというものがあるというのを、今知りました... ありがとうございます。flexboxの問題が解決したのち、調べて入れてみます。。
m.ts10806

2019/07/18 04:21

wrapperにボーダーがあるうえで内部のwidthが75%25%になってるのではみ出る可能性ありそうだなぁと思っては見てました(コードを実際に動かしたわけではないですが) 要素にはデフォルトで持っている幅とか(特にpadding,margin)があるので個別に0をいれるくらいならreset.cssでリセットしておいてブラウザ間の差がないようにしてから対応したほうがスムーズにいくことも多いです。
退会済みユーザー

退会済みユーザー

2019/07/18 04:29

ありがとうございます。 #wrapperは、内部のwidthを1000pxにして固定し、#leftと#rightで3:1にして、margin等は使っていないのでbox自体は問題なかったです。 reset.cssを使って、ブラウザ間の差異がないようにできるように。ですね! 勉強します!
guest

この質問の投稿者はすでに退会しているため、質問者からの返信がない点にご留意ください。

回答の取得に失敗しました

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.25%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問