こんにちは。「ふ」です。
〜今回は2カラムのレスポンシブデザインをやってみたいと思います。
完成イメージはこんな感じ。
PCでの表示
スマホでの表示
ではやってみましょう!
とりあへずHTMLを書いて表示させてみます。
HTML
PC画面でのプレビュー
こんな感じになりました。
視認性を高めるために、実際には背景色など色々なCSSを仕込んでいますが、今回の目的とは外れるため、詳しいcodeの紹介は割愛します。
先ほどのHTMLコードを極端に小さい画面のデバイスで表示すると、要素の右側が切れて表示されてしまいます。
スマホ画面でのプレビュー
画面の幅(width)に合わせて表示されるように、 head要素内にmeta情報を記述しましょう。
meta情報の名前(属性)はviewport(画面)、そしてその設定内容は「width(幅)はデバイスのwidthに合わせてください」という意味です。
このmeta情報を指定したのち、さきほどの要素の右側が途切れてしまった画面サイズでプレビューしてみます。
スマホ画面でのプレビュー
画面サイズに合わせたwidthで要素が表示されました。
次はPC画面でプレビューしてみます。
PC画面でのプレビュー
うむ。headerは画面の横幅いっぱいに広げたかったのでこれでよしとして、それ以下の要素についてはある程度の幅に縮めて中央に配置したい。
header下の要素をdivで囲み、CSSを仕込みましょう。
このwrapperに対してCSSを仕込みます。
PC画面でのプレビュー
おお、うまくいきましたね。
1カラムのレスポンシブはこれでよし。
1カラムには成功しました。これにPCで閲覧した時のデザインを仕込んでいきます。
PC画面での完成イメージをもう一度みてみましょう。
PC画面でのプレビュー
PCのでかい画面で表示したときにはこんな感じにしたいのですが・・
〜 HTMLに仕込むことがいっぱいありそうなので、項目に挙げてみます。
スマホでのプレビュー
なおかつ、スマホサイズの画面においては要素を左右に振り分けず、縦一列に等幅で表示させたい。
そのためには、メディアクエリという機能をつかいます。
メディアクエリとは、画面の表示サイズによって適用させるCSSを使い分けることができる機能です。
たとえば「画面幅が480px以内ならスマホ表示、それ以上ならPC表示」と条件分けしたい場合、以下のように記述します。
ではこのメディアクエリの内部にPC画面用のCSSを記述していきましょう。
1カラムのデザインを作成した時、header以外の要素(div class = "wrapper"で囲んだもの)のwidthは1000pxに設定していました。
このwrapperのwidthを100%として、左側25%の幅でmenuとadvertを、右側75%の幅でh1とpを配置したいと思います。
まづはCSSでセレクトできるように、左に寄せたい要素に「left」、右に寄せたい要素に「right」のclass属性をあたえましょう。
このleftとrightのCSSを、先ほどのメディアクエリの内部に記述します。
leftとrightの要素を左右に回り込ませ、幅も調整しています。
ここで忘れがちなのがそのまま表示させたいfooterについて。「clear : both」で回り込みを解除させておきましょう。
プレビューしてみます。これで完成ですね!
PCでのプレビュー
スマホでのプレビュー
スマホ画面で表示すると、各要素がちゃんと等幅で積み上げられています。
あとはfont-sizeなど調整して、素敵なページに仕上げてください 🎵 お疲れ様でした。
swift、web、ガジェットなど。役立つ情報や観ていてたのしいページを書いていきたいと思います。
🐧 twitter 🐧