レスポンシブ【max-width】

Pocket

今回はレスポンシブデザインの際に便利な『max-width』についてご紹介します。

max-widthで幅を指定することで、ブロック要素の最大値を指定することができます。

下記に例を書きますので、デザインの参考にしてみて下さい。


使用するhtmlはこちらです。

  1. <!DOCTYPE html>
  2. <html lang="ja">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>タイトル</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <link rel="stylesheet" href="css/index.css">
  8. </head>
  9. <body>
  10. <main>
  11. <div class="backgroundBox">
  12. <div class="Container">
  13. <ul class="Box">
  14. <li class="item">メニュー1</li>
  15. <li class="item">メニュー2</li>
  16. <li class="item">メニュー3</li>
  17. <li class="item">メニュー4</li>
  18. <li class="item">メニュー5</li>
  19. </ul>
  20. </div>
  21. <div class="textBox">
  22. <p class="text">sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。</p>
  23. </div>
  24. </div>
  25. </main>
  26. </body>
  27. </html>

<スマホ用のcss>

  1. * {
  2. margin: 0;
  3. padding: 0; }
  4.  
  5. .backgroundBox {
  6. background-color: whitesmoke; }
  7.  
  8. .Container {
  9. margin: 0 10px 20px;
  10. padding-top: 10px;
  11. padding-bottom: 10px; }
  12.  
  13. .Box {
  14. display: block;
  15. max-width: 400px;
  16. list-style: none;
  17. margin: 0 auto; }
  18.  
  19. .item {
  20. background-color: orange;
  21. color: white;
  22. border: solid 1px white;
  23. text-align: center; }
  24.  
  25. .textBox {
  26. margin: 0 10px; }
  27.  
  28. .text {
  29. display: block;
  30. max-width: 500px;
  31. margin: 0 auto;
  32. 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>

  1. * {
  2. margin: 0;
  3. padding: 0; }
  4.  
  5. .backgroundBox {
  6. background-color: whitesmoke; }
  7.  
  8. .Container {
  9. margin: 0 10px 20px;
  10. padding-top: 10px;
  11. padding-bottom: 10px; }
  12.  
  13. .Box {
  14. display: block;
  15. max-width: 400px;
  16. list-style: none;
  17. margin: 0 auto; }
  18. @media screen and (min-width: 768px) {
  19. .Box {
  20. max-width: 900px; } }
  21.  
  22. .item {
  23. background-color: orange;
  24. color: white;
  25. border: solid 1px white;
  26. text-align: center; }
  27. @media screen and (min-width: 768px) {
  28. .item {
  29. height: 50px;
  30. line-height: 50px; } }
  31.  
  32. .textBox {
  33. margin: 0 10px; }
  34.  
  35. .text {
  36. display: block;
  37. max-width: 500px;
  38. margin: 0 auto;
  39. padding-bottom: 10px; }

○ポイント

・ メディアクエリを使用して、.boxのmax-widthを900pxに再定義しているため、.boxのサイズは900px以上に広がることはありません。

ブラウザでの表示イメージ

  • メニュー1
  • メニュー2
  • メニュー3
  • メニュー4
  • メニュー5

sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。sampleです。サンプルです。さんぷるです。

ブラウザの横幅調整に応じて、メニューとテキストの幅が可変であり、かつスマートフォン表示のときメニュー幅の最大値は400px、PC表示のときメニュー幅の最大値は900pxであれば成功です。

以上です。