レムの簡単な分析まず、remはCSS単位です。pxの固定ピクセル単位と比較すると、remはより柔軟性があり、vmも比較的優れています。今まで知らなかった方は、まずはご覧になってみてください。 rem 適応型。 CSS3 REMはフォントサイズを設定します
簡単に言えば、rem は HTML 要素のフォント サイズに基づいて計算されます。私たちの要件は、さまざまな解像度に応じて要素のサイズを変更し、非常に快適な視覚効果を実現できることです。 PC 側で作業する場合を考えてみましょう。通常は、中間のサイズを固定します。たとえば、1200 ピクセルです。次に、最小サイズを 1200 ピクセルにして、両側に空白スペースを残します。これにより、拡大または縮小しても効果に影響しません。しかし、現在ではさまざまなモバイル画面が登場し、適応性はさらに高まっています。異なる解像度に応じて HTML のフォント サイズを変更するには、ページに rem を記述します。rem はルート要素のフォント サイズを基準に計算されるため、適応効果を実現できます。 1. 適応方法適応ソリューションでは、rem レイアウトを使用します。さまざまな画面解像度に応じて、ルート要素 html のフォント サイズが調整されるため、各要素の幅と高さが自動的に変更され、さまざまな画面に適応できます。 2. postcss-px2rem-excludeプラグインを使用するインストールnpm install postcss-px2rem-exclude --save-dev プロジェクトのルートディレクトリにpostcss.config.jsファイルを作成します。 モジュール.エクスポート = { プラグイン: { 自動プレフィックス: {}, 'postcss-px2rem-exclude': { remユニット: 192 // 除外: /node_modules|folder_name/i, } } } 3. Flexible.js をインストールします(ローカルに配置することを推奨)インストールコマンド npm install lib-flexible (関数(win, lib) { var doc = win.document var docEl = doc.documentElement var metaEl = doc.querySelector('meta[name="viewport"]') var フレキシブルEl = doc.querySelector('meta[name="フレキシブル"]') var dpr = 0 varスケール = 0 var tid var フレキシブル = lib.フレキシブル || (lib.フレキシブル = {}) if (メタEl) { console.warn('ズーム率は既存のメタタグに従って設定されます') var マッチ = metaEl .getAttribute('コンテンツ') // eslint は次の行を無効にして、無駄なエスケープを禁止します .match(/initial\-scale=([\d\.]+)/) (一致)の場合{ スケール = parseFloat(match[1]) dpr = parseInt(1 / スケール) } } そうでない場合 (flexibleEl) { var コンテンツ = FlexibleEl.getAttribute('コンテンツ') if (コンテンツ) { // eslint は次の行を無効にして、無駄なエスケープを禁止します var initialDpr = content.match(/initial\-dpr=([\d\.]+)/) // eslint は次の行を無効にして、無駄なエスケープを禁止します var maximumDpr = content.match(/maximum\-dpr=([\d\.]+)/) (初期Dpr)の場合{ dpr = parseFloat(初期Dpr[1]) スケール = parseFloat((1 / dpr).toFixed(2)) } (最大Dpr)の場合{ dpr = parseFloat(最大Dpr[1]) スケール = parseFloat((1 / dpr).toFixed(2)) } } } (!dpr && !スケール){ // var isAndroid = win.navigator.appVersion.match(/android/gi); var isIPhone = win.navigator.appVersion.match(/iphone/gi) var デバイスピクセル比 = win.デバイスピクセル比 if (isIPhone) { // iOS では、2 画面と 3 画面の場合は 2 倍のソリューションを使用し、それ以外の場合は 1 倍のソリューションを使用します if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) { dpr = 3 } そうでない場合 (devicePixelRatio >= 2 && (!dpr || dpr >= 2)) { dpr = 2 } それ以外 { dpr = 1 } } それ以外 { // 他のデバイスでは、1xソリューションが引き続き使用されますdpr = 1 } スケール = 1 / dpr } docEl.setAttribute('data-dpr', dpr) if (!metaEl) { metaEl = doc.createElement('meta') metaEl.setAttribute('名前', 'ビューポート') metaEl.setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no') docEl.firstElementChildの場合{ docEl.firstElementChild.appendChild(metaEl) } それ以外 { var wrap = doc.createElement('div') wrap.appendChild(メタEl) doc.write(wrap.innerHTML) } } 関数refreshRem() { var 幅 = docEl.getBoundingClientRect().width (幅 / dpr > 540)の場合{ 幅 = 幅 * dpr } var rem = 幅 / 10 docEl.style.fontSize = rem + 'px' フレキシブル.rem = win.rem = rem } win.addEventListener() 関数は、 「サイズ変更」、 関数() { クリアタイムアウト(tid) tid = setTimeout(リフレッシュ間隔、300) }, 間違い ) win.addEventListener() 関数は、 'ページ表示', 関数(e) { if (e.persisted) { クリアタイムアウト(tid) tid = setTimeout(リフレッシュ間隔、300) } }, 間違い ) doc.readyState === '完了'の場合{ doc.body.style.fontSize = 12 * dpr + 'px' } それ以外 { doc.addEventListener() 関数は、 'DOMコンテンツがロードされました'、 関数() { doc.body.style.fontSize = 12 * dpr + 'px' }, 間違い ) } リフレッシュRem() フレキシブル.dpr = win.dpr = dpr フレキシブル.refreshRem = リフレッシュRem フレキシブル.rem2px = 関数(d) { var val = parseFloat(d) * this.rem (typeof d === 'string' && d.match(/rem$/))の場合{ val += 'px' } 戻り値 } フレキシブル.px2rem = 関数(d) { var val = parseFloat(d) / this.rem if (typeof d === 'string' && d.match(/px$/)) { val += 'rem' } 戻り値 } })(ウィンドウ、ウィンドウ['lib'] || (ウィンドウ['lib'] = {})) 上記のコードはインストールされたflexible.jsとは異なります 修正済み 関数refreshRem() { var 幅 = docEl.getBoundingClientRect().width (幅 / dpr > 540)の場合{ 幅 = 幅 * dpr } var rem = 幅 / 10 docEl.style.fontSize = rem + 'px' フレキシブル.rem = win.rem = rem } main.js にインポートする
要約するVue プロジェクトの大画面への適応に関するこの記事はこれで終わりです。Vue の大画面への適応に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Linux でユーザーにルート権限を追加する方法の概要
>>: MySQL エラー 1290 (HY000) の解決方法
これは、Web ページを Windows のスタート メニューなどのデスクトップ プログラムのように...
HTML を使用してコンテンツをマークアップする目的は、Web ページにセマンティクスを与えることで...
操作中に Docker コンテナの公開ポートを変更または追加する必要がある場合がありますが、実行中の...
1. 透明度を変更してテキストを徐々に点滅させると、次のような効果が得られます。 <!DOCT...
HTML にビデオを挿入するために最もよく使用される方法は 2 つあります。1 つは古い <o...
tomcat7 のデフォルトのプログラム公開パスは tomcat/webapps/ROOT/ です。...
GUNスクリーン:公式サイト: http://www.gnu.org/software/screen...
リンク A のセマンティクス、ライティング スタイル、およびベスト プラクティス。私は JavaEy...
1. ソフトウェアのインストールパスを確認します。 Linuxソフトウェアをインストールできる場所は...
序文React 16から、子コンポーネントで発生したエラーを捕捉し、エラーログを記録し、ダウングレー...
Microsoft IE 5.0 がリリースされる前は、Web プログラミングにおける最大の課題は、...
導入: MySQL データベースの仕様に関しては、皆さんも何らかのドキュメントを読んだことがあると思...
MySQL を使用してデータベースをクエリし、左結合を実行すると、関連付けられたフィールドの一部に...
フォームを入力不可にしたい場合は、フォームを次のように設定します。コードをコピーコードは次のとおりで...
出典: https://medium.com/better-programming、著者: Fere...