モバイル開発における最も一般的な問題の 1 つは、さまざまな画面幅に適応することです。現在、より一般的な適応ソリューションは、CSS の相対単位である rem と vw です。 レムW3C では、rem をルート要素のフォント サイズとして定義しています。これは、ブラウザーのルート要素 (HTML 要素) のフォント サイズを基準としてのみ決定される単位です。つまり、幅の異なるモデルの場合、対応するルート要素のフォント サイズを計算し、同じ CSS コードを使用して比例調整を行うだけで済みます。最も単純なケースを考えてみましょう。 HTML コード スニペット // モバイルページに必要なメタ。デバイス画面の幅をドキュメントの幅に設定します <meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=0"> js コードスニペット // ドキュメントの幅に基づいてルート要素のフォントサイズを計算します。例としてドキュメントの幅の 1/10 を取ります。画面の幅が 375 の場合、ルート要素のフォントサイズは 37.5px になります。 var w = document.documentElement.clientWidth; document.documentElement.style.fontSize = w / 10 + 'px'; CSS コード スニペット //このとき、.div{ 幅: 2rem; } //この div の幅は 75 ピクセルになります。同様に、画面の幅が 360 の場合、div の幅は 72 ピクセルになります。 //日常の開発では、最も一般的なデザイン案は750pxです。デザイン案の領域の高さが30pxの場合、 //比例スケーリングを実現するために、CSSでheight: 0.4rem (30/75)と記述します 実際の開発では、webpack をビルドするときに rem 適応を実現するために、postcss-pxtorem と lib-flexible などのプラグインを使用するのが一般的です。 インストール: webpack.config.js で postcss-loader を設定する モジュール.エクスポート = { エントリ: "./src/index.js", 出力: { パス: path.join(__dirname,"/dist"), ファイル名: "bundle.js" }, モジュール:{ ルール:[ { テスト: /\.css$/, 使用方法: ['style-loader','css-loader','postcss-loader'] // postcss-loader を設定する } ] }, } プロジェクトのルートディレクトリに新しい.postcssrc.jsファイルを作成し、そこにpostcss-pxtoremプラグインの設定を記述します。 モジュール.エクスポート = { 「プラグイン」: { "postcss-pxtorem": { rootValue: 75, //750 のデザイン ドラフト propList: ['*'] } } } エントリで指定されたエントリ js ファイル ("./src/index.js") に lib-flexible を導入します。 'amfe-flexible' をインポートする このように、CSSでデザイン原稿内の絶対ピクセル値を直接記述することができます。例えば、750のデザイン原稿内のdiv#testの幅が200pxであれば、変換せずにそのまま記述することができます。 #テスト{ 幅: 200ピクセル } フォルクスワーゲンもう 1 つの解決策は、ブラウザの表示領域の幅を基準とした単位である、ビューポートの幅の 1% である vw を使用することです。 // モバイルページに必要なメタ。デバイス画面の幅をドキュメントの幅に設定します <meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=0"> モバイル デバイスでは、width = device-width が設定されている場合、画面の幅は 100vw になります。 vw レイアウトを使用する場合、rem のように js 内のルート要素のフォント サイズを動的に設定する必要はありませんが、画面の幅に直接相対的になります。例えば、750のデザイン案ではdivの幅は200pxなので、次のように記述できます: width: 200 / 750 * 100 vw webpack では、postcss-px-to-viewport プラグインを使用してこれを実現できます。 インストール: 上記の rem のように、webpack.config.js で postcss-loader を設定します。 モジュール.エクスポート = { 「プラグイン」: { 'postcss-px-to-viewport': { viewportWidth: 750 //750 デザイン案} } } この方法では、デザイン ドラフト内の絶対ピクセル値を CSS に直接書き込むことができます。例は上記の rem の例と同じです。 サードパーティのUIフレームワークに適応するモバイル デバイスで他のコンポーネント ライブラリを使用したり、vant や mint-ui などのサードパーティの UI フレームワークを参照したりすることがあります。サードパーティのフレームワークは 375 ピクセルのデザイン ドラフトに基づいて px 単位を使用するため、プロジェクトのデザイン ドラフトが 750 ピクセルの場合、適応に同じ viewportWidth を使用することはできません。 このとき、.postcssrc.js で次のように設定できます (vw を例にとると、rem も同様です)。 定数パス = require('path') module.exports = ({file}) => { //vant UI フレームワークを使用する場合 const width = file.dirname.includes(path.join('node_modules', 'vant')) ? 375 : 750; 戻る { 「プラグイン」: { 「postcss-px-to-viewport」: { viewportWidth: 幅、 } } } } 結論rem と vw はどちらも一般的に使用されているモバイル適応ソリューションです。両者の違いは、まず第一に互換性にあります。Rem は古いバージョンのブラウザと互換性があります。caniuse の Web サイト caniuse.com/ を参照してください。次に、rem は js を通じてルート要素のフォント サイズを計算する必要がありますが、vm は純粋な CSS 実装です。 以上で、webpack のモバイル適応ソリューションの概要についての説明は終了です。より関連性の高い webpack のモバイル適応コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQLのスローログの開き方と保存形式の詳細な分析
>>: CentOS8 で Docker を使用してオープンソース プロジェクト Tcloud をデプロイするチュートリアル
1. MySQLデータベースをダウンロードし、インストールして設定するダウンロードアドレス: htt...
1. ダウンロード1. MySQL公式サイトのダウンロードアドレス: https://downloa...
この記事では、WeChatアプレットの計算機機能を実装するための具体的なコードを参考までに紹介します...
<br />関連記事: Web コンテンツ ページ作成に関する 9 つの実用的な提案、W...
背景:サーバーがFlaskプロジェクトをデプロイし、python3をインストールしたため、再起動時に...
デモを作成するときにこのプラグインを使用していくつか問題が発生したため、プラグインの使用方法といくつ...
目次序文配列.プロトタイプ.includes文法パラメータ戻り値例配列プロトタイプの削減文法パラメー...
1. Apache 静的リソースのクロスドメイン アクセスApache設定ファイルhttpd.con...
Dockerコンテナの状態遷移図2度目の実戦 [root@localhost ~]# docker ...
昨日、ある人のシステムのインストールを手伝ったのですが、自動パーティション分割をクリックするのを忘れ...
ダウンロード参考:ダウンロードするコアパッケージを選択してくださいダウンロード後、ファイルをサーバー...
最近、データベースについて学び始めました。最初にやったことは、データベースとは何か、データベースとデ...
HTML を使用して動的な Web クロックを作成します。コードは次のとおりです。 <!DOC...
背景webpackのバージョンを確認したいのですが、webpack -vを実行するとエラーが報告され...
私が実現したい機能は、新しいウィンドウを開いて新しいページを表示することですが、パラメータを渡す必要...