お世話になってます。
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ではできるのですが、今回は極力使いたくないです。
お力を貸していただけますと嬉しいです。
reset.cssは入れられましたか?
こちら、choromeのみでとりあえず試したいなと思ってます。
この後、autoprefixerを使ってブラウザ対応したいと考えています。
あれ?通じてない・・?
https://webdesign-trends.net/entry/8137
これは...
リセットCSSというものがあるというのを、今知りました...
ありがとうございます。flexboxの問題が解決したのち、調べて入れてみます。。
wrapperにボーダーがあるうえで内部のwidthが75%25%になってるのではみ出る可能性ありそうだなぁと思っては見てました(コードを実際に動かしたわけではないですが)
要素にはデフォルトで持っている幅とか(特にpadding,margin)があるので個別に0をいれるくらいならreset.cssでリセットしておいてブラウザ間の差がないようにしてから対応したほうがスムーズにいくことも多いです。
ありがとうございます。
#wrapperは、内部のwidthを1000pxにして固定し、#leftと#rightで3:1にして、margin等は使っていないのでbox自体は問題なかったです。
reset.cssを使って、ブラウザ間の差異がないようにできるように。ですね!
勉強します!
回答3件
あなたの回答
tips
プレビュー

