モバイルページ適応、REMおよびVW適応ソリューション 基本的なポイント: rem はルート ノードのフォント サイズを基準とします。したがって、px は必要ありません。 道具vue-cli: スキャフォールディングを使用して vue フロントエンド プロジェクトを構築する プラグインをインストールするnpm および postcss、postcss-pxtorem、postcss-loader、postcss-import、postcss-url 次にそれをindex.htmlに追加します <meta name="viewport" content="width=デバイス幅、初期スケール=1、最大スケール=1"> プロジェクトのルートディレクトリに.postcssrc.jsファイルを追加します。モジュール.エクスポート = { 「プラグイン」: { "postcss-import": {}, // @import で CSS ファイルをインポートするために使用されます。"postcss-url": {}, // CSS ファイルまたは node_modules ファイルを導入するためのパス。"postcss-aspect-ratio-mini": {}, // 要素コンテナーのアスペクト比を処理するために使用されます。"postcss-write-svg": { utf8: false }, // モバイル端末用の 1px ソリューションを処理するために使用されます。このプラグインは、主に border-image と background を使用して 1px 関連の処理を行うものです。 "postcss-cssnext": {}, // このプラグインにより、CSS の将来の機能が使用できるようになり、これらの機能に関連する互換性処理が実行されます。 "postcss-px-to-viewport": { //px 単位を vw、vh、vmin、vmax などのビューポート単位に変換します。これは、vw 適応ソリューションのコア プラグインの 1 つでもあります。 viewportWidth: 750, //ビューポートの幅viewportHeight: 1334, //ビューポートの高さunitPrecision: 3, //pxをビューポート単位値に変換する小数点以下の桁数viewportUnit: 'vw', //変換するビューポート単位値を指定しますselectorBlackList: ['.ignore', '.hairlines'], //ビューポート単位値を変換しないクラスを指定します。これはカスタマイズして無制限に追加できますminPixelValue: 1, //1px以下はビューポート単位に変換されませんmediaQuery: false //メディアクエリでpxを許可 }, "postcss-viewport-units":{}, //vw、vh、vmin、vmax を適応します。これは、vw レイアウトを実装するために不可欠なプラグインです。 "cssnano": { //主に CSS コードを圧縮およびクリーンアップするために使用されます。 Webpack では、cssnano は css-loader にバンドルされているため、自分でロードする必要はありません。 preset: "advanced", //繰り返し autoprefixer: false, //cssnext と cssnano の両方に autoprefixer があります。実際は 1 つだけ必要なので、デフォルトの autoprefixer を削除し、cssnano の autoprefixer を false に設定します。 "postcss-zindex": false //このプラグインが有効になっている限り、z-index値は1にリセットされます } } } 異なる画面サイズに切り替えるときは、ルートフォントサイズを動的に変更する必要があります。簡単なjsをheadに挿入します。publicディレクトリに新しいshipei.jsを作成し、このjsをindex.htmlのheadに導入します。 //shipei.js (関数() { 関数 autoRootFontSize() { document.documentElement.style.fontSize = Math.min(screen.width,document.documentElement.getBoundingClientRect().width) / 750 * 32 + 'px'; // screen.width と document.documentElement.getBoundingClientRect().width の最小値を取得し、750 で割り、32 を掛けます。おわかりのように、元のサイズ 750 の 32px になります。画面サイズが 375px になると、フォント サイズは 16px になります。つまり、ルート fontSize のサイズは画面サイズに正比例して変化します。簡単じゃないですか? window.addEventListener('resize', autoRootFontSize); 自動ルートフォントサイズ(); })(); インデックス.html<!DOCTYPE html> <html lang=""> <ヘッド> <メタ文字セット="utf-8"> <meta http-equiv="X-UA-compatible" content="IE=edge"> <meta name="viewport" content="width=デバイス幅、初期スケール=1、最大スケール=1"> <link rel="スタイルシート" href="/public.css" rel="外部nofollow" type="text/css"> <link rel="icon" href="<%= BASE_URL %>favicon.ico" rel="外部 nofollow" > <title><%= htmlWebpackPlugin.options.title %></title> <script src="/shipei.js" type="text/javascript" charset="utf-8"></script> </head> <本文> <div id="アプリ"></div> <!-- ビルドされたファイルは自動的に挿入されます --> </本文> </html> パブリックに配置するものの開始ディレクトリを記述する必要がないことに注意してください。スキャフォールディングがパッケージ化されると、パブリック フォルダー内で検索されます。 についてgetBoundingClientRect().width は、実際には親の右側とブラウザの原点 (0,0) と親の左側の間の距離、つまり親の幅 + 2padding + 2border を取得します。 <!DOCTYPE html> <html> <ヘッド> <メタ文字セット="utf-8"> <タイトル></タイトル> <スタイル タイプ="text/css"> *{ マージン: 0; パディング: 0; } </スタイル> </head> <本文> <div id="divParent" style="background-color: #aaa; padding:8px; border:solid 7px #000; height:200px; width:500px; overflow:hidden;"> <div id="divDisplay" style="background-color: #0f0; margin: 30px; padding: 10px; 高さ: 400px; 幅: 600px; 境界線: 実線 3px #f00;"> </div> </div> </本文> </html> <script type="text/javascript"> /* getBoundingClientRect().width は、実際には親の右側とブラウザの原点 (0,0) と親の左側の間の距離、つまり親の幅 + 2padding + 2border を取得します。 このとき、clientWidth は、境界線の幅を除いて、親の幅 + 2*padding に等しくなります。 子コンテンツが非表示になっていない場合、つまりオーバーフローが自動の場合、親はボックス モデルを適応させないため、子コンテンツの幅はこの数値のままになります。後者の幅は、上で取得した幅からスクロール バーの幅 (17 px) を引いた値です。例は次のとおりです。 */ var divP = document.getElementById('divParent'); var divD = document.getElementById('divDisplay'); var クライアント幅 = divP. クライアント幅; var getWidth = divP.getBoundingClientRect().width; divD.innerHTML += 'clientWidth: ' + clientWidth + '<br/>'; divD.innerHTML += 'getWidth: ' + getWidth + '<br/>'; </スクリプト> 結果は clientWidth が 516 となり、これはコンテンツ幅 + 2padding として計算されます。 これで、vue プロジェクトで rem を使用して px を置き換える実装例に関するこの記事は終了です。vue rem を使用して px コンテンツを置き換える関連の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援してください。 以下もご興味があるかもしれません:
|
>>: Linux(中心OS7)は、Java Webプロジェクトの実行環境を構築するためにJDK、Tomcat、MySQLをインストールします。
NULL 値によると、MySQL の NULL 値は単にデータがないことを意味します。NULL 値は...
目次1. SQLコマンドを含むSQLスクリプトファイルを作成する2. SQLスクリプトファイルを実行...
目次1. はじめに2. es5メソッド3. 非同期関数のシリアル実行4. 非同期関数の並列実行5. ...
MySql は常に MySQLInstallerConsole.exe ウィンドウを定期的にポップア...
この記事ではJavaScript検索のデータ表示コードを参考までに共有します。具体的な内容は以下のと...
データベースはスロークエリログを有効にします設定ファイルを変更する設定ファイルmy.iniに次の2つ...
目次序文webSocket の操作と例について:ウェブソケット1. webSocketについて2. ...
目次まず、package.jsonを設定します次にwebpackツールをインストールしますwebpa...
Node-red をデータベース (mysql) に接続するには、まずコンピューターに MySQL ...
1. 必要なパッケージをダウンロードする wget -P /usr/local https://st...
MySQL-Group-Replication は、MySQL-5.7.17 で開発された新しい機...
目次1. grub.cfg ファイルの紹介1. grub.cfg ファイルの場所2. grub.cf...
HTML 構造は次のとおりです。 CCS 構造は次のとおりです。 ページ効果図は次のとおりです。 こ...
目次1. ウィザードに従って仮想マシンを作成します2. オペレーティングシステムをインストールします...
画像プレビュー機能付きのアップロードフォーム、完全なHTMLコードは次のとおりです。 <htm...