メディアクエリを使わずに作りました。
html
1<!DOCTYPE html> 2<html> 3 <head> 4 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"> 5 <meta charset="UTF-8"> 6 <style> 7 .main { 8 background-color: white; 9 display: grid; 10 gap: 16px; 11 grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 12 padding: 16px; 13 margin: 16px; 14 } 15 .main-item { 16 background-color: red; 17 height: 100px; 18 } 19 </style> 20 </head> 21 <title> 22 </title> 23 <body style="background-color: turquoise;"> 24 <main class="main"> 25 <div class="main-item">item 1</div> 26 <div class="main-item">item 2</div> 27 <div class="main-item">item 3</div> 28 <div class="main-item">item 4</div> 29 <div class="main-item">item 5</div> 30 <div class="main-item">item 6</div> 31 <div class="main-item">item 7</div> 32 <div class="main-item">item 8</div> 33 <div class="main-item">item 9</div> 34 <div class="main-item">item 10</div> 35 </main> 36 </body> 37</html>
幅の最小値300pxとしているので幅300以下のモニターで見るとコンテンツがはみ出すのが問題です。
なので以下のサイトのように横幅を一定の部分まで狭めるとスマホ版の全体が縮小されていくようにしてみたいですがどのような方法があるでしょうか。
https://www.panda-ah.com/
こちら要素一つ一つにブレイクポイントを設けているわけでは無さそうですが、特殊なviewport設定などが存在するのでしょうか。
画面幅にwidthを合わせるのではダメなのですか?
vwや%などの単位でそういう指定ができるかと思いますが
%等だとはみ出ることは無くなるかもしれませんがかなり画面幅を狭めないと1カラムにならない等が発生するのであえて300pxにしています
それならflexでwrapを指定すれば1カラムという構造にはできますね。
https://developer.mozilla.org/ja/docs/Web/CSS/CSS_flexible_box_layout/Mastering_wrapping_of_flex_items
gridでも似たようなことが出来ます。300pxというのが決まりきった幅ならgridレイアウトでも柔軟に位置指定ができます。
ちなみに、仮に%指定で現れる問題(1カラムにならない)が既知なのであれば質問をする際に、試したこととして記載すると良いかと思われます。
質問を読み返しましたが、
mim-widthや
https://developer.mozilla.org/ja/docs/Web/CSS/min-width
max-widthが利用可能と思います
https://developer.mozilla.org/ja/docs/Web/CSS/max-width
回答3件
あなたの回答
tips
プレビュー