レスポンシブデザインを実装する方法
元記事
事前確認をする内容
対応ブラウザ、端末
IE対応する/しない
最新ブラウザバージョンだけで良い/だめ
IE対応なら追加料金などもあり
要調整内容
デザインサイズ、モバイル、デスクトップ
ピクセル比で割り切れない数字を使用しない
4インチ端末、1800pxを超えるウィンドウサイズ、ぞれぞれで見られた時にどうするのかを確認する
命名規則を決めておく
フォントサイズはデザイン上での指定は必ずpx
ptではない (1.333...pt = 1px)
画像は、最低限等倍と2倍が必要
3倍以上は、少しでもぼやけさせたくないものを優先する
UIで使う画像はSVG
細かなアイコンはwebfont
実装
viewport
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
css
<link href="mobile.css" rel="stylesheet" media="screen and (max-width: 600px)">
css の長さ
相対指定と絶対指定がある
相対指定:他の長さにしたがって長さを指定すること
絶対指定:物理的な固定の長さで指定すること
絶対指定の単位
px: モニターの画素、pixel を1とする単位。解像度によっては、1pxが端末の複数ピクセルに変わることがある
pt: 1/72 in = 1pt
cm: 96px/2.54 = 1cm
mm: 1/10 cm = 1mm
相対指定の単位
%: 親要素の幅または高さを基準とする単位
em: その要素のfont-size を基準とする単位。font-size プロパティ自身に使われた場合は、要素に継承されたfont の大きさを表す
rem: ルート要素 (html) のfont-size (大抵16px) を基準とする単位。ルート要素のfont-size で使うと初期値を表す
vw: viewport の初期値の包含ブロックにおける幅の1%と同じ
vh: viewport の初期値の包含ブロックにおける高さ1%と同じ
メディアクエリ
@media (max-width: 375px) and (orientation: landscape) {
body { color: red; }
}
機能クエリ
@supports (backdrop-filter: none) {
.content {
backdrop-filter: blur(5px);
}
}
変数
:root {
--section-width: 10vw;
}
section {
width: var(--section-width);
}
テキストの調整
font-sizeはremで設定
remはhtmlの文字サイズを基準とする、直近の親要素の影響を受けない
画像の調整
max-width
img, picture {
max-width: 100%;
}
srcset
<img src="jo-600x338.jpg"
alt=""
width="600"
height="338"
class="alignnone size-large wp-image-3970"
srcset="jo-600x338.jpg 600w,
jo-300x169.jpg 300w,
jo.jpg 638w"
sizes="(max-width: 600px) 100vw, 600px">
picture
<picture>
<source srcset="/media/examples/surfer-240-200.jpg"
media="(min-width: 800px)">
<img src="/media/examples/painted-hand-298-332.jpg" />
</picture>
background-size: cover または contain
object-fit
レイアウト
リキッドレイアウトまたはフレキシブルレイアウトを使用
レイアウトモジュール
flexbox または css grid を使用
flexboxは単一行、gridは行と列が必要な時に使用
before padding か after padding で高さの相対指定をする
padding-top:56.25%=16:9
便利ツール
画面サイズ
PC: 1366px, 1920px, 1280px
SP: 375px, 360px, 320px, 414px
iPhone width
320px:
iPhone3, 4, 5
6, 7, 8 (互換)
6Plus, 7Plus, 8Plus (互換)
375px:
6, 7, 8
X
X, XS (互換)
6Plus, 7Plus, 8Plus (拡大)
414px:
6Plus, 7Plus, 8Plus
XR
XS Max
768px:
iPad Mini 1-4 5世代
iPad 1-4
iPad Air 1-2
iPad Pro 9.7
810px:
iPad 7世代
834px:
iPad Pro 10.5
iPad Air 3世代
iPad Pro 11
1024px:
iPad Pro 12.9
この記事が気に入ったらサポートをしてみませんか?