レスポンシブwebデザインの基本

0 Comments
  • ビューポートを設定する
  • サイズのコンテンツをビューポートに設定する
  • 応答性にCSSメディアクエリを使用する
  • ブレークポイントを選択する方法
  • Chrome DevToolsでメディアクエリブレークポイントを表示する

ウェブをサーフィンするためのモバイルデバイスの使用は天文学的なペースで増加し続けており、これらのデバイスは表示サイズによって制約されることが多く、画面上でコンテンツをレイアウトする方法には異なるアプローチが必要です。—–,

レスポンシブwebデザインは、もともと離れてリストにイーサンMarcotteによって定義され、ユーザーと彼らが使用しているデバイスのニーズに応答します。 レイアウトは、デバイスのサイズと機能に基づいて変更されます。 たとえば、電話では、ユーザーはコンテンツを単一の列ビューに表示し、タブレットは同じコンテンツを二つの列に表示する場合があります。

携帯電話、”ファブレット”、タブレット、デスクトップ、ゲーム機、テレビ、さらにはウェアラブルにさまざまな画面サイズが存在します。, 画面サイズは常に変化しているので、あなたのサイトは、今日または将来的には、任意の画面サイズに適応できることが重要です。 さらに、デバイスには、デバイスと対話するさまざまな機能があります。 例えばあなたの訪問者の何人かはタッチスクリーンを使用する。 現代対応型のデザインを考慮しこれらすべてのものへの適用に際します。

Set the viewport#

さまざまなデバイス用に最適化されたページには、ドキュメントの先頭にmeta viewportタグが含まれている必要があります。メタビューポートのタグは、ウェブサイトの制御方法についてのページ”s寸法をスケーリングといいます。,

最高のエクスペリエンスを提供しようとすると、モバイルブラウザはデスクトップの画面幅でページをレンダリングします(通常は980pxこれは、フォントサイズが表示され、コンテンツと対話するためにダブルタップまたはピンチツーズームする必要がある場合があり、ユーザーに矛盾して表示,

メタビューポート値を使用してwidth=device-width画面の幅をデバイスに依存しないピクセル単位で一致させるようにページに指示します。 デバイス(または密度)独立したピクセルは、高密度スクリーン上で多くの物理ピクセルからなる単一のピクセルの表現である。 これにより、ページは小さな携帯電話や大きなデスクトップモニターでレンダリングされるかどうか、異なる画面サイズに一致するようにリフロー,

ビューポートメタタグのないデバイスでページがどのように読み込まれるかの例です。 Glitchのこの例を参照してください。
ビューポートメタタグを持つデバイスでページがどのように読み込まれるかの例です。 Glitchのこの例を参照してください。

一部のブラウザは、landscapemodeに回転するときにページの幅を一定に保ち、画面を埋めるためにリフローではなくズームします。, 値initial-scale=1を追加すると、デバイスの向きに関係なく、CSSpixelsとデバイスに依存しないピクセルの間に1:1の関係を確立するようにブラウザー

注意:古いブラウザが属性を正しく解析できるようにするには、属性を区切るためにコンマを使用します。,

には<meta name="viewport">タグがありませんまたはinitial-scaleLighthouse監査は、HTMLドキュメントがビューポートメタタグを正しく使用していることを確認するプロセスを自動化するのに役立ちます。,

アクセス可能なビューポートを確保する#

initial-scaleを設定するだけでなく、ビューポートに次の属性を設定することもできます。

  • minimum-scale
  • maximum-scale
  • user-scalable

これらを設定すると、ユーザーがビューポートをズームする機能を無効にし、アクセシビリティの問題を引き起こす可能性があります。したがって、これらの属性の使用は推奨しません。,

ビューポートへのコンテンツのサイズ#

デスクトップデバイスとモバイルデバイスの両方で、ユーザーはwebサイトを垂直にスクロールするのに慣れていますが、水平にスクロールしたり、ページ全体を表示するためにズームアウトしたりすると、ユーザーエクスペ

メタビューポートタグを持つモバイルサイトを開発するとき、指定されたビューポート内に収まらないページコンテンツを誤って作成するのは簡単です。たとえば、ビューポートよりも広い幅で表示されるイメージは、ビューポートを水平にスクロールさせることができます。,ユーザーが水平方向にスクロールする必要がないように、このコンテンツをビューポートの幅に収まるように調整する必要があります。

コンテンツのサイズが正しくないviewportLighthouse auditは、オーバーフローコンテンツを検出するプロセスを自動化するのに役立ちます。

Images#

画像の寸法が固定されており、ビューポートよりも大きい場合はスクロールバーが発生します。この問題に対処する一般的な方法は、すべての画像にmax-widthof100%を与えることです。,これにより、ビューポートのサイズが画像よりも小さくなると、画像が持つスペースに合わせて縮小されます。ただし、max-widthではなく、width100%であるため、画像は自然よりも大きく伸びませんsize.It スクロールバーを引き起こす画像に問題がないように、stylesheetsに次のものを追加するのは一般的に安全です。,

画像の寸法をimg要素に追加します#

max-width: 100%画像の自然な寸法をオーバーライドしていますが、widthおよびheightあなたの<img>タグ。これは、最新のブラウザーがこの情報を使用して画像が読み込まれる前にスペースを確保するためです。,

Layout#

CSSピクセルの画面寸法と幅はデバイス間で大きく異なるため(たとえば、電話とタブレット間、さらには異なる電話間でも)、コンテンツを適切にレンダリングするために特定のビューポートの幅に依存するべきではありません。

過去には、この必要な設定要素でレイアウトを作成するために使用されますpercentages.In 以下の例では、ピクセルを使用してサイズが変更された要素を持つ二列レイアウトを見ることができます。ビューポートが列の合計幅よりも小さくなったら、コンテンツを表示するには水平にスクロールする必要があります。,

ピクセルを使用したフローティングレイアウト。 Glitchのこの例を参照してください。

幅にパーセンテージを使用すると、列は常にコンテナの一定のパーセンテージのままになります。これは、スクロールバーを作成するのではなく、列が狭くなることを意味します。

フレックスボックス、グリッドレイアウト、マルチコールなどの最新のCSSレイアウト技術は、これらの柔軟なグリッドの作成をはるかに簡単にします。,

Flexbox#

このレイアウト方法は、異なるサイズのアイテムのセットがあり、小さいアイテムのスペースが少なく、大きいアイテムのスペースが多くなるように、行または行に快適に収まるようにしたい場合に理想的です。

レスポンシブデザインでは、フレックスボックスを使用してアイテムを単一の行として表示したり、使用可能なスペースが減少すると複数の行にラップしたりすることができます。

フレックスボックスについての詳細を読みます。

CSSグリッドレイアウト#

CSSグリッドレイアウトは、柔軟なグリッドの簡単な作成を可能にします。,パーセンテージで列を作成するのではなく、以前のフロートされた例を考えると、グリッドレイアウトと、コンテナ内の使用可能なスペースの一部を表すfrユニットを使用することができます。

グリッドは、通常のグリッドレイアウトを作成するために使用することもできます。利用可能なトラックの数は、画面サイズに応じて減少しますshrinks.In 以下のデモでは、各行に収まる数のカードがあり、最小サイズは200pxです。,

CSSグリッドレイアウトの詳細を読む

複数列レイアウト#

一部のタイプのレイアウトでは、複数列レイアウト(マルチコル)を使用できます。column-widthproperty.In 以下のデモでは、別の200px列のスペースがある場合、列が追加されていることがわかります。,

Multicolについてもっと読む

応答性にCSSメディアクエリを使用する#

レイアウトをより広範に変更する必要がある場合があります。このメディアの問合せとなります。

メディアクエリは、CSSスタイルに適用できる単純なフィルタです。,これにより、コンテンツをレンダリングするデバイスの種類、またはそのデバイスの機能、例えば、幅、高さ、向き、ホバーする機能、およびデバイスがタッチスクリー,

メディアクエリを使用してメインスタイルシートに印刷スタイルを含めることもできます。

メインCSSファイルに別のスタイルシートを含めることもできます。

メインCSSファイルに別のスタイルシートを含めることもできます。@import構文、@import url(print.css) print;ただし、この使用はパフォーマンス上の理由から推奨されません。見を避けるCSSの輸入できます。,

レスポンシブwebデザインでは、通常、小さな画面に異なるレイアウトを提供するため、または訪問者がタッチスクリーンを使用していることを検出したときに、デバイスの機能を照会しています。

ビューポートサイズに基づくメディアクエリ#

メディアクエリにより、特定のスタイルが小さな画面、大きな画面、およびその間のどこにでも適用されるレスポンシブなエクスペリエンスを作成できます。したがって、ここで検出している機能は画面サイズであり、次のことをテストすることができます。,

  • width (min-width, max-width)
  • height (min-height, max-height)
  • orientation
  • aspect-ratio

All of these features have excellent browser support,for more details including browser support information seewidth,height,orientation, andaspect-ratio on MDN.

The specification did include tests for device-width and device-height., これらは非推奨であり、避けるべきです。device-widthおよびdevice-heightデバイスウィンドウの実際のサイズをテストしましたが、実際には役に立たなかったため、これはユーザーが見ているビューポートとは異なる可能性があります。

デバイス機能に基づくメディアクエリ#

利用可能なデバイスの範囲を考えると、すべての大きなデバイスが通常のデスクトップコンピュータであるとか、小さなデバイスでタッチスクリーンのみを使用しているという仮定をすることはできません。,メディアクエリ仕様に新しく追加されたいくつかの追加により、デバイスとの対話に使用されるポインタの型や、ユーザーが要素の上にカーソルを置くことができるかどうかなどの機能をテス

  • hover
  • pointer
  • any-hover
  • any-pointer

このデモを通常のデスクトップなど、さまざまなデバイスで表示してみてくださいコンピュータと携帯電話やタブレット。

これらの新しい機能は、すべての最新のブラウザで優れたサポートを持っています。, 詳細については、mdnのページをご覧くださいホバー、任意のホバー、ポインタ、任意のポインタ。

any-hoverおよびany-pointer#

機能any-hoverおよびany-pointerユーザーがホバーする能力を持っているかどうかをテストするか、またはそのタイプのポインターを使用して、それらのポインターと対話している主な方法ではない場合でも、そのタイプのポインターを使用してください。device.Be これらを使用す彼らは彼らのタッチスクリーンを使用しているときにマウスに切り替えるためにユーザーを強制,ただし、any-hoverおよびany-pointerは、ユーザーがどのような種類のデバイスを持っているかを調べることが重要な場合に役立ちます。例えば、ノートパソコン、タッチパネルやトラックパッドを一致させる必要があ粗微動のポインタの能力に推移.

ブレークポイントの選択方法#

デバイスクラスに基づいてブレークポイントを定義しないでください。現在使用されている特定のデバイス、製品、ブランド名、またはオペレーティングシステムに基づいてブレークポイントを定義すると、メンテ,その代わりに、コンテンツそのものを決定することが望のレイアウトを調整しめます。

小さな開始によって主要なブレークポイントを選択し、その後、作業#

最初に小さな画面サイズに収まるようにコンテンツを設計し、ブレークポイントが必要になるまで画面を展開します。ことができ、最適なブレークポイントに基づくcontentand維持の少なくとも数の投資を維持しながら、生産性が可能です。

私たちが最初に見た例を使って作業しましょう:天気予報。最初のステップは、小さな画面で予測をよく見せることです。,

狭い幅でアプリを。

次に、要素間に空白が多すぎるまでブラウザのサイズを変更し、予測が単純に良く見えなくなるまでブラウザのサイズを変更します。決定はやや主観的ですが、上記の600pxは確かに広すぎます。

私たちはデザインを微調整する必要があります感じる時点でアプリ。,

600pxにブレークポイントを挿入するには、ブラウザが600px以下のときに使用するメディアクエリと、600pxより広いときに使用するメディアクエリを作成します。

最後に、CSSをリファクタリングします。 max-widthのメディアクエリ内600px、小さな画面専用のCSSを追加します。, min-widthのメディアクエリ内601px大きな画面用のCSSを追加します。

必要に応じてマイナーなブレークポイントを選択#

レイアウトが大幅に変更されたときにメジャーなブレークポイントを選択するだけでなく、マイナーなたとえば、主要なブレークポイント間では、要素の余白やパディングを調整したり、レイアウトでより自然に感じるようにフォントサイズを増やしたりすると便利です。

小さな画面レイアウトを最適化することから始めましょう。,この場合、ビューポートの幅が360pxより大きいときに”sがフォントをブーストさせます。第二に、十分なスペースがある場合、高温と低温を分離して、お互いの上に同じ線上にあるようにすることができます。そして、”sはまた、天気のアイコンを少し大きくしましょう。

同様に、大画面の場合は、予測パネルの最大幅に制限するのが最善ですので、画面全体の幅を消費することはありません。,

読み取りのためのテキストの最適化#

古典的な可読性理論は、理想的な列には行あたり70-80文字(英語では約8-10語)を含むべきであることを示唆している。このように、各時間の幅をテキストブロックが過去約10言葉に加え、ブレークポイントを設定します。

モバイルデバイスで読み取られたテキストです。,
行の長さを制限するためにブレークポイントが追加されたデスクトップブラウザで読み取られるテキストです。

上記のブログ記事の例をより詳しく見てみましょう。小さい画面では、1emのRobotoフォントは、行あたり10ワードを与えて完全に動作しますが、大きい画面では、1embreakpoint.In この場合、ブラウザの幅が575pxより大きい場合、理想的なコンテンツ幅は550pxです。,

単にコンテンツを非表示にしないでください#

画面サイズに応じて非表示または表示するコンテンツを選択するときは注意あなたが画面上に収まらないという理由だけで、コンテンツを隠すだけではありません。画面サイズは、ユーザーが何を望むかを明確に示すものではありません。例えば、天気予報から花粉数を排除することは、彼らが外に出ることができるかどうかを判断するための情報を必要とする春のアレルギー患者にとって深刻な問題である可能性があります。,

Chrome DevToolsでメディアクエリブレークポイントを表示#

メディアクエリブレークポイントを設定したら、サイトがどのように見えるかを確認します。ブラウザウィンドウのサイズを変更してブレークポイントをトリガーすることもできますが、Chrome DevToolsには組み込み機能があり、異なるブレークポイントの下で

天気アプリをより広いビューポートサイズで表示するDevTools。,
それはより狭いビューポートサイズを見て天気アプリを示すDevTools。

異なるブレークポイントでページを表示するには:

Devtoolsを開き、デバイスモードをオンにします。これはデフォルトで応答モードで開きます。

メディアクエリを表示するには、デバイスモードメニューを開き、メディアクエリを選択してブレークポイントをページの上に色付きのバーとして表示します。

そのメディアクエリがアクティブな間にページを表示するには、バーのいずれかをクリックします。,メディアクエリの定義にジャンプするには、バーを右クリックします。

最終更新:月14、2020記事を改善


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です