CSS Grid×aspect-ratio のレスポンシブ対応。スマホでの最適なアスペクト比は4:3?16:9?
公開日
一昨日、昨日と「CSS Grid」での全体の型作り、そして「aspect-ratio」での中身の比率固定、さらにGSAP Power2.inを使った「命を吹き込む演出」について解説してきました。これで「崩れない型」は完成です。
今回は、その崩れないレイアウトを、どのデバイスでも美しく表示させるための最後のステップ、「スマホ対応(レスポンシブ)」をご紹介します。
この記事で学べること
- 「スマホでも4:3がいい?」に対する忖度なしの回答
- aspect-ratioをレスポンシブで使いこなす、コピペで使えるCSSコード
- Grid→aspect-ratio→ホバー演出→Responsiveまで、これまでの技術の集大成
目次
和哉からの回答:スマホの場合って4/3がいいのかな?
まずは、MENTAの受講生さんからもよく聞かれるこの疑問に、僕のこれまでのフリーランス経験から率直にお答えします。
結論:PC(3列)では4:3がちょうどいいが、スマホ(1列)では「16:9(横長)」の方が美しい。
なぜなら、スマホ(特に縦持ち)で1列レイアウトにした場合、昨日の記事で作った「4:3」のアスペクト比の画像をそのまま表示させると、横幅(max-width: 1100pxなど)に対して画像が「縦に長すぎる」印象を与えてしまうからです。
PCでの3列配置では気になりませんが、スマホの小さな画面(愛犬のミニチュアダックスフンドに見守られながら作業している僕のデスクの小さなモニターなど)では、画像をスクロールする時間が長くなり、ユーザーに「威圧感」や「見づらさ」を感じさせてしまいます。
そのため、プロの現場では、PCは4:3、スマホは16:9で使い分けるのが「崩れない型」をスマホにも優しく落とし込むコツです。
【実戦】aspect-ratioをレスポンシブで使いこなす
では、和哉が提示したCSSコードに、スマホでのアスペクト比変更を追加した、レスポンシブ対応の完成形コードをご覧ください。
See the Pen Untitled by 広瀬和哉 (@lpvcfdes-the-styleful) on CodePen.
実装コードと解説(レスポンシブ追加版)
/* PCでの指定(再掲) */
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr); /* 昨日のTips:repeat関数活用 */
gap: 20px;
max-width: 1100px;
margin: 0 auto;
}
/* ★画像の外側の枠(アスペクト比固定:PC) */
.grid p.img {
aspect-ratio: 4 / 3; /* 一昨日の復習:PCでは4:3で固定 */
overflow: hidden; /* ★重要:ホバー拡大した画像がはみ出ないようにする */
}
/* 子要素:画像自体の設定 */
.grid p.img img {
width: 100%;
height: 100%;
object-fit: cover;
/* ★動きを滑らかにする設定 */
transition: transform 0.5s ease; /* 心地よく動かす(昨日のおもてなし) */
}
/* ★ホバー時の動き */
.items:hover p.img img {
transform: scale(1.1); /* 主流のtransform scale(パフォーマンス重視) */
}
/* 【追加】スマホでの指定 */
@media screen and (max-width: 767px) {
.grid {
grid-template-columns: 1fr; /* ★スマホでは1列に変更(CSS Gridの真骨頂) */
}
/* ★ここがプロの技! */
.grid p.img {
aspect-ratio: 16 / 9; /* スマホでは横長の16:9に変更(優しさの設計) */
}
}
解説: media screen で「比率」まで変える
- media screen (max-width: 767px): これを使って、スマホでのスタイルを記述します。
- 1fr: 昨日のGridの記事では、`1fr 1fr 1fr` と `repeat(3, 1fr)` の書き分けを解説しましたが、スマホではシンプルに `1fr`(1列)にするだけで完結します。
- aspect-ratio: 16 / 9;: これが一番のポイントです。 media screen の中に記述することで、スマホでのアスペクト比のみを「16:9(横長)」に上書きします。PCでの指定を「上書き」するので、PCでの指定(4/3)はそのままで、スマホだけ16:9になる、効率的なコード設計です。
まとめ:技術の集大成で、崩れない「型」をスマホにも
3月毎日投稿シリーズで続けてきた、この一連のレイアウト解説。 「CSS Grid」で全体の型を作り、「aspect-ratio」で中身を整え、そこに「GSAP Power2.in」や「transform scale」ホバーで動きを加え、最後に今日の「media screen」でレスポンシブに対応する。この3STEPこそが、現代のWeb制作における王道の「型」です。
2020年からデベロッパーとして活動し、数多くの現場を経験してきましたが、こうした「基本の組み合わせ」を疎かにしないことが、結果として保守性の高い、良いサイト制作に繋がります。
そして、メンターとして受講生の方に一番伝えたいのは、「崩れない型」を作るだけでなく、今日のアクセシビリティへの配慮のような「ユーザーへの優しさ」を忘れないことです。ぜひこの記事をコピペして、自分だけの「最強のカードレイアウト」をスマホまで崩さず、優しく届けてみてくださいね!
和哉からのアドバイス
「スマホ対応」は、決して難しいことではありません。今回のように、基本の「Grid」「aspect-ratio」「Hover」の知識さえあれば、それを media screen で状況に合わせて使い分けるだけです。岐阜のこのデスクで、愛犬に見守られながら作業している僕も、この型を日々使い倒しています。皆さんもぜひ、自信を持って実装してみてくださいね!
