今回はレスポンシブデザインの際に便利な『max-width』についてご紹介します。
max-widthで幅を指定することで、ブロック要素の最大値を指定することができます。
下記に例を書きますので、デザインの参考にしてみて下さい。
使用するhtmlはこちらです。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>タイトル</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/index.css"> </head> <body> <main> <div class="backgroundBox"> <div class="Container"> <ul class="Box"> <li class="item">メニュー1</li> <li class="item">メニュー2</li> <li class="item">メニュー3</li> <li class="item">メニュー4</li> <li class="item">メニュー5</li> </ul> </div> <div class="textBox"> <p class="text">sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。</p> </div> </div> </main> </body> </html>
<スマホ用のcss>
* { margin: 0; padding: 0; } .backgroundBox { background-color: whitesmoke; } .Container { margin: 0 10px 20px; padding-top: 10px; padding-bottom: 10px; } .Box { display: block; max-width: 400px; list-style: none; margin: 0 auto; } .item { background-color: orange; color: white; border: solid 1px white; text-align: center; } .textBox { margin: 0 10px; } .text { display: block; max-width: 500px; margin: 0 auto; padding-bottom: 10px; }
○ポイント
・ .boxにmax-widthを指定しているため、ブラウザ幅を400px以上にしても.boxのサイズは400px以上に広がることはありません。
(400px以下では、画面幅いっぱいに要素を広げることができます)
・ .textにmax-widthを指定いるため、ブラウザ幅を500px以上にしても.textのサイズは500px以上に広がることはありません。
ブラウザでのイメージ
- メニュー1
- メニュー2
- メニュー3
- メニュー4
- メニュー5
sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。
<PC用のcss>
* { margin: 0; padding: 0; } .backgroundBox { background-color: whitesmoke; } .Container { margin: 0 10px 20px; padding-top: 10px; padding-bottom: 10px; } .Box { display: block; max-width: 400px; list-style: none; margin: 0 auto; } @media screen and (min-width: 768px) { .Box { max-width: 900px; } } .item { background-color: orange; color: white; border: solid 1px white; text-align: center; } @media screen and (min-width: 768px) { .item { height: 50px; line-height: 50px; } } .textBox { margin: 0 10px; } .text { display: block; max-width: 500px; margin: 0 auto; padding-bottom: 10px; }
○ポイント
・ メディアクエリを使用して、.boxのmax-widthを900pxに再定義しているため、.boxのサイズは900px以上に広がることはありません。
ブラウザでの表示イメージ
- メニュー1
- メニュー2
- メニュー3
- メニュー4
- メニュー5
sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。
ブラウザの横幅調整に応じて、メニューとテキストの幅が可変であり、かつスマートフォン表示のときメニュー幅の最大値は400px、PC表示のときメニュー幅の最大値は900pxであれば成功です。
以上です。