アダプティブ Web デザインを実現する方法に関する関連知識ポイントの要約

アダプティブ Web デザインを実現する方法に関する関連知識ポイントの要約
「アダプティブ Web デザイン」はどのように機能しますか?実はそれほど難しいことではありません。

1. Web ページの幅を自動的に調整できるようにします。

まず、Web ページ コードの先頭にビューポート メタ タグの行を追加します。

コードをコピー
コードは次のとおりです。

<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0, width=デバイス幅"/>

ビューポートは、Web ページのデフォルトの幅と高さです。上記のコード行は、Web ページの幅がデフォルトで画面の幅 (width=device-width) と等しく、元のスケーリング比 (initial-scale=1) が 1.0 であることを意味します。つまり、Web ページの初期サイズは画面領域の 100% を占めます。

古い IE6、7、8 ブラウザでは、js 処理が必要です。主なプラットフォームは iOS と Android なので、Opera のサポート不足は一時的に無視できます。

2. 絶対幅を使わない

Web ページは画面の幅に応じてレイアウトを調整するため、絶対幅のレイアウトや絶対幅の要素は使用できません。これはとても重要です。

具体的には、CSS コードではピクセル幅を指定できません。

幅:xxx ピクセル;

列幅を定義するにはパーセンテージのみを指定できます。

幅: xx%;

または:

幅:自動;

または:

最大幅と最大高 max-width、max-height を使用します。

3. 相対的なフォントサイズ

フォントのサイズは絶対サイズ (px) では設定できず、相対サイズ (em) でのみ設定できます。

コードをコピー
コードは次のとおりです。

体 {
フォント: 標準 100% Helvetica、Arial、sans-serif;
}

上記のコードは、フォント サイズがページのデフォルト サイズ (16 ピクセル) の 100% になることを指定しています。

コードをコピー
コードは次のとおりです。

h1 {
フォントサイズ: 1.5em;
}

h1 のサイズは、デフォルト サイズの 1.5 倍、つまり 24 ピクセル (24/16 = 1.5) になります。

コードをコピー
コードは次のとおりです。

小さい
フォントサイズ: 0.875em;
}

小さい要素のサイズは、デフォルト サイズの 0.875 倍、つまり 14 ピクセル (14/16 = 0.875) になります。

4. 流動的なグリッド
「流動的なレイアウト」とは、各ブロックの位置が固定ではなく、浮動していることを意味します。

コードをコピー
コードは次のとおりです。

。主要 {
フロート: 右;
幅: 70%;
}
.leftBar{
フロート: 左;
幅: 25%;
}

float の利点は、幅が小さすぎて 2 つの要素を収容できない場合、後者の要素は前者の要素の下部まで自動的にスクロールされ、水平方向にオーバーフローしないため、水平スクロール バーが表示されなくなることです。
また、絶対位置指定(position: absolute)を使用する場合は、細心の注意を払う必要があります。

5. 「アダプティブウェブデザイン」の核となるのは、CSS3で導入されたメディアクエリモジュールです。

つまり、画面の幅を自動的に検出し、対応する CSS ファイルを読み込むということです。
media="screen および (max-device-width: 400px)"
href="tinyScreen.css" />
上記のコードは、画面の幅が 400 ピクセル未満 (max-device-width: 400px) の場合、tinyScreen.css ファイルを読み込むことを意味します。
media="screen かつ (最小幅: 400px) かつ (最大デバイス幅: 600px)"
href="smallScreen.css" />
画面の幅が 400 ピクセルから 600 ピクセルの場合、smallScreen.css ファイルが読み込まれます。
HTML タグを使用して CSS ファイルを読み込むだけでなく、既存の CSS ファイルに読み込むこともできます。
@import url("tinyScreen.css") 画面と (max-device-width: 400px);

6. CSS @mediaルール

同じ CSS ファイル内で、異なる画面解像度に応じて異なる CSS ルールを適用することもできます。

コードをコピー
コードは次のとおりです。

@media screen および (最大デバイス幅: 400px) {
。カラム {
フロート: なし;
幅:自動;
}
#サイドバー {
表示:なし;
}
}

上記のコードは、画面の幅が 400 ピクセル未満の場合、列ブロックはフロート解除され (float:none)、幅は自動的に調整され (width:auto)、サイドバー ブロックは表示されない (display:none) ことを意味します。

列とフロートには線形デザインを使用します。

コードをコピー
コードは次のとおりです。

@media スクリーンと (最大幅: 480px) {
div、li {
表示: ブロック;
フロート:なし;
幅:100%;
}
}



7. 流動的なイメージ

「レスポンシブ Web デザイン」では、レイアウトとテキストに加えて、画像の自動スケーリングも実現する必要があります。
これには CSS が 1 行だけ必要です:
画像 { 最大幅: 100%;}
このコード行は、Web ページに埋め込まれたほとんどのビデオでも機能するため、次のように記述できます。
画像、オブジェクト { 最大幅: 100%;}
古いバージョンの IE は max-width をサポートしていないため、次のように記述する必要があります。
画像の幅: 100%;
さらに、Windows プラットフォームで画像を拡大縮小すると、画像の歪みが発生する可能性があります。現時点では、IE 独自のコマンドを使用してみることができます。
img { -ms 補間モード: バイキュービック; }
あるいは、Ethan Marcotte による imgSizer.js を使用します。

コードをコピー
コードは次のとおりです。

addLoadEvent(関数() {
var imgs = document.getElementById_x_x_x_x("content").getElementsByTagName("img");
imgSizer.collat​​e(画像);
});

ただし、条件が許せば、画面サイズに応じて異なる解像度の画像を読み込むのが最適です。これを行うには、サーバー側とクライアント側の両方で多くの方法があります。

8. ホームページのコンテンツ検索バー、製品カテゴリ、人気製品、キーワード。

9. 水平スクロールバーを避ける

画像やその他のページ要素によって、コンテナ要素が正常に流れなくなることがあります。次のスクリプトを使用すると、この動作を簡単に防ぐことができます。

コードをコピー
コードは次のとおりです。

img、iframe {最大幅:100%;ボックスサイズ:ボーダーボックス;}

<<:  HTML の doctype とエンコーディングに関する簡単な説明

>>:  ウェブページでグレーまたはブラックモードを実現するための CSS3 フィルターコード

推薦する

Reactのようなフレームワークをゼロから作成する

最近、インターネットで「Build your own React」という記事を見ました。著者は、シン...

MySQL シリーズ 12 バックアップとリカバリ

目次チュートリアルシリーズ1. バックアップ戦略の説明1. バックアップの種類2. バックアップで考...

MySQL シリーズ 10 同時実行制御を実装するための MySQL トランザクション分離

目次1.同時アクセス制御2. 取引1. トランザクションは ACID 原則に従います。 2. トラン...

Vue 関数のアンチシェイクとスロットリングの正しい使用方法

序文1. デバウンス: 高頻度イベントがトリガーされた後、関数は n 秒以内に 1 回だけ実行されま...

Docker コンテナ ソース コードのデプロイ httpd ストレージ ボリュームを使用して Web サイトをデプロイする (推奨)

目次Dockerコンテナのソースコードを使用してhttpdをデプロイし、ストレージボリュームを使用し...

MySQL は対応するクライアント プロセスにどのように接続しますか?

質問特定の MySQL 接続について、それがどのクライアント プロセスからのものであるかをどのように...

vue.jsは画像のURLに従って画像をダウンロードします

最近、フロントエンドの vue.js ドッキング機能モジュールに取り組んでいたとき、画像をダウンロー...

vsftpdで仮想ユーザーログインを設定する方法

yum で vsftpd をインストールします [root@localhost など]# yum -...

反応ループデータの実装(リスト)

まず、バックグラウンドから来るデータをシミュレートしてみましょう。ここでは、コードをわかりやすくする...

Vue でインデックスをキー属性値として使用することが推奨されないのはなぜですか?

目次序文キーの役割差分アルゴリズムにおけるキーの役割ヘッドノードを同期するテールノードを同期する新し...

JS の toFixed() メソッドの丸め精度の問題の詳細な説明

目次落とし穴充填方法何の穴ですか?要約する落とし穴最近、仕事で商品の割引価格を計算すると、いつも1セ...

Vue で axios を使用して画像をアップロードするときに発生する問題

目次FormDataとは何ですか? vueとaxiosの協力による実践的な体験追加()セット()消去...

Vueは物流タイムライン効果を実現します

この記事では、物流タイムライン効果を実現するためのVueの具体的なコードを例として紹介します。具体的...

SQL 実装 LeetCode (185. 部門内で最も給与の高い上位 3 名)

[LeetCode] 185. 部門別給与上位3位従業員テーブルにはすべての従業員が保持されます。...

Linux ディスク管理 LVM の使用

1. LVM の概要Linux ディスクを管理するときに、このような状況に遭遇することがよくあります...