今回はレスポンシブデザインの際に便利な『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であれば成功です。
以上です。