モバイルページ適応、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をインストールします。
1. はじめになぜインデックスが必要なのでしょうか?一般的なアプリケーション システムでは、読み取り...
トリガーの紹介トリガーは、テーブルに関連付けられた特別なストアド プロシージャであり、テーブル内のデ...
ボタンをクリックしてテキストを入力ボックスに変換し、保存をクリックしてテキスト実装コードに変換します...
序文かつて、難しい問題に遭遇しました。タワークレーンからスイングハウスを落下させる必要がありましたが...
1. Vimの公式ウェブサイトにアクセスして、オペレーティングシステムに適した実行ファイルをダウンロ...
オリジナルリンク: https://vien.tech/article/138序文私は、マークダウン...
1. セマンティゼーションとは何ですか? Bing辞書の説明セマンティクス化とは、適切な HTML ...
目次1. v-text (v-instruction name = "variable&q...
以下のように表示されます。主に認証コマンドを実行します: 2つの方法1. 任意のホストがユーザー b...
目次1. キャラクター文法パラメータ索引戻り値2. 連結文法パラメータ文字列2 [, …文字列N]戻...
この記事の例では、矢印をクリックして画像を切り替えるVue + jsの具体的なコードを共有しています...
1. 内閣府マスターノードを監視することで、他のスレーブノードへの自動フェイルオーバーを実現できます...
この記事の例では、マウスに従ってボールを動かすjsの具体的なコードを参考までに共有しています。具体的...
今日は、CSS を使用して左上の三角形を記述するいくつかの方法を紹介します。概略図(幅と高さを60p...
目次ユースケースリアクティブAPI関連プロセス反応的なcreateReactiveObjectはレス...