質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

解決済

2回答

2298閲覧

htmlのレイアウト(2カラム)をflexを利用して作りたい

beginner_t

総合スコア716

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2017/09/02 15:48

編集2017/09/02 22:09

【やりたいこと】
htmlのレイアウト(2カラム)をflexを利用して作りたい。
・header,footerは横幅いっぱいに表示
・footerはsticky footerになるように設定
・main-wrapをmax-width:1000pxで表示
・main,asideを画面幅600px以上の時、2カラムで表示

現在のコード

html

1<header>header</header> 2 3<div class="main-wrap"> 4 <main> 5 <h2>test</h2> 6 <p>test test test test test test test test</p> 7 </main> 8 <aside id="side"> 9 <h2>test</h2> 10 <p>test test test test test test test test</p> 11 </aside> 12</div> 13 14<footer><small>footer</small></footer>

css

1 2body { 3 font-family: font-family: 'メイリオ','Hiragino Kaku Gothic Pro',sans-serif; 4 display: flex; 5 flex-direction: column; 6 min-height: 100vh; 7 margin: 0; 8} 9header { 10 background: #aaa; 11 padding: 15px; 12} 13.main-wrap { 14 flex: 1; 15 padding: 20px 16} 17main { 18 background: #ff5500; 19 padding: 0px; 20} 21aside { 22 background: #eee; 23 padding: 15px; 24} 25footer { 26 background: #ffa; 27 padding: 15px; 28} 29 30@media (min-width: 600px) { 31 .main-wrap { 32 display: flex; 33 max-width: 1000px; 34 margin-left: auto; 35 margin-right: auto; 36 } 37 main { 38 background: #ccc; 39 flex:4; 40 } 41 aside { 42 background: #eee; 43 flex:1; 44 } 45 46}

上記コードの場合、
・header,footerは横幅いっぱいに表示
・footerはsticky footerになるように設定
・main,asideを画面幅600px以上の時、2カラムで表示
の3点は実現できているのですが、

・main-wrapをmax-width:1000pxで表示
が実現できません。

画面幅1000px以上になるようにしても、main-wrapの幅が
600pxほどにしかならず、いろいろと数値を変えたりはしてみたのですが、
行き詰っております。

勉強中のため、いろいろとコードに不備があるかとは思いますが、
ご教授いただけると幸いです。
よろしくお願いいたします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

CSS

1.sample { 2 max-width:1000px; 3 width:100%; 4}

投稿2017/09/03 08:39

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

beginner_t

2017/09/03 08:51

ご回答ありがとうございます。 width:100%を設定することにより、中身が少ない場合でもwidthを保つことができました。 ありがとうございます。 またわからないことがあればご教授お願い致します。
guest

0

max-widthの指定が間違っているんだと思います。
min-widthか普通にwidthだけの指定で横幅のサイズは指定できます。

cssの意味はこんな感じです。
max-width:1000px;(最大の幅1000px。どんだけ画面が広がっても最大1000pxまでしか広がりません。)
min-width:1000px;(最小の幅1000px。どんだけ画面が狭まっても最低1000px以下には狭まりません。)
width:1000px;(どんな状態でも1000px)

なぜmainwrapの幅が600pxぐらいなのかというと「最大の幅1000px」「mainwrapの中身600px」という状態で、
最大幅にwidthが満たしていなかったためだと思います。

投稿2017/09/03 06:54

編集2017/09/03 06:57
Higemura

総合スコア274

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

beginner_t

2017/09/03 08:22

今回、max-widthを使用しているのは、今後mainの中にグリッドを配置し、さらにそれをflexに設定して、画面幅によってグリッドの折り返し設定などをしたいと思っているからです。 できれば、max-widthを使って実現したいなとは思っているのですが。 ご回答いただいているように、「mainwrapの中身600px」というのを満たすためには、 mainとasideの中身を増やせば可能ということでしょうか? よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問