Eine kurze Analyse von remZunächst einmal ist rem eine CSS-Einheit. Im Vergleich zur festen Pixeleinheit px ist rem flexibler und vm ist jetzt auch relativ gut. Wer es noch nicht kennt, kann hier gerne erst einmal einen Blick hineinwerfen. rem adaptiv. CSS3 REM legt die Schriftgröße fest
Einfach ausgedrückt wird rem basierend auf der Schriftgröße des HTML-Elements berechnet. Unsere Anforderung ist, dass sich die Größe unserer Elemente je nach Auflösung entsprechend ändern kann, damit wir einen sehr angenehmen visuellen Effekt erzielen können. Bedenken Sie, dass wir bei der Arbeit auf der PC-Seite normalerweise eine mittlere Größe festlegen, z. B. 1200 Pixel, und dann das Minimum von 1200 Pixeln, wobei auf beiden Seiten Leerraum gelassen wird, sodass der Effekt nicht beeinträchtigt wird, egal, ob wir hinein- oder herauszoomen. Doch durch die Einführung unterschiedlicher mobiler Bildschirme ist die Anpassungsfähigkeit jetzt noch größer. Um die Schriftgröße von HTML entsprechend unterschiedlicher Auflösungen zu ändern, schreiben wir rem in die Seite. Da rem relativ zur Schriftgröße des Stammelements berechnet wird, kann ein adaptiver Effekt erzielt werden. 1. AnpassungsmethodeDie Anpassungslösung verwendet REM-Layout. Die Schriftgröße des HTML-Stammelements wird entsprechend der unterschiedlichen Bildschirmauflösung angepasst, sodass die Breite und Höhe jedes Elements automatisch geändert werden kann, um sich an unterschiedliche Bildschirme anzupassen. 2. Verwenden Sie das Plugin postcss-px2rem-excludeInstallnpm installiere postcss-px2rem-exclude --save-dev Erstellen Sie eine Datei postcss.config.js im Stammverzeichnis des Projekts modul.exporte = { Plugins: { Autopräfix: {}, 'postcss-px2rem-exclude': { remEinheit: 192 // ausschließen: /node_modules|Ordnername/i, } } } 3. Installieren Sie flexible.js (es wird empfohlen, es lokal zu speichern)Installationsbefehl npm install lib-flexible (Funktion(win, lib) { var doc = win.document var docEl = doc.documentElement var metaEl = doc.querySelector('meta[name="viewport"]') var flexibleEl = doc.querySelector('meta[name="flexible"]') var dpr = 0 var Skala = 0 var tid var flexible = lib.flexible || (lib.flexible = {}) wenn (MetaEl) { console.warn('Der Zoomfaktor wird entsprechend den vorhandenen Meta-Tags eingestellt.') var match = metaEl .getAttribute('Inhalt') // eslint-disable-next-line kein nutzloses Escape .match(/initial\-scale=([\d\.]+)/) wenn (Übereinstimmung) { Skala = parseFloat(Übereinstimmung[1]) dpr = parseInt(1 / Skala) } } sonst wenn (flexibleEl) { var Inhalt = flexibleEl.getAttribute('Inhalt') wenn (Inhalt) { // eslint-disable-next-line kein nutzloses Escape var initialDpr = Inhalt.match(/initial\-dpr=([\d\.]+)/) // eslint-disable-next-line kein nutzloses Escape var maximumDpr = content.match(/maximum\-dpr=([\d\.]+)/) wenn (initialDpr) { dpr = parseFloat(initialDpr[1]) Skala = parseFloat((1 / dpr).toFixed(2)) } wenn (maximalDpr) { dpr = parseFloat(maximumDpr[1]) Skala = parseFloat((1 / dpr).toFixed(2)) } } } wenn (!dpr && !scale) { // var isAndroid = win.navigator.appVersion.match(/android/gi); var isIPhone = win.navigator.appVersion.match(/iphone/gi) var devicePixelRatio = win.devicePixelRatio wenn (istIPhone) { // Unter iOS verwenden Sie für 2 und 3 Bildschirme die 2x-Lösung und für den Rest die 1x-Lösung if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) { dpr = 3 } sonst wenn (Gerätepixelverhältnis >= 2 und (!dpr || dpr >= 2)) { dpr = 2 } anders { dpr = 1 } } anders { // Für andere Geräte wird weiterhin die 1x-Lösung verwendet dpr = 1 } Maßstab = 1 / dpr } docEl.setAttribute('data-dpr', dpr) wenn (!metaEl) { metaEl = doc.createElement('meta') metaEl.setAttribute('Name', 'Ansichtsfenster') metaEl.setAttribute('Inhalt', 'Anfangsmaßstab=' + Maßstab + ', Maximalmaßstab=' + Maßstab + ', Minimalmaßstab=' + Maßstab + ', benutzerdefiniert skalierbar=nein') wenn (docEl.erstesElementKind) { docEl.firstElementChild.appendChild(metaEl) } anders { var wrap = doc.createElement('div') wrap.appendChild(metaEl) doc.write(innerHTML umschließen) } } Funktion refreshRem() { var Breite = docEl.getBoundingClientRect().width wenn (Breite / dpr > 540) { Breite = Breite * dpr } var rem = Breite / 10 docEl.style.fontSize = rem + 'px' flexible.rem = win.rem = rem } win.addEventListener( 'Größe ändern', Funktion() { Zeitüberschreitung löschen(tid) tid = setzeTimeout(refreshRem, 300) }, FALSCH ) win.addEventListener( 'Seitenshow', Funktion(e) { wenn (e.persistent) { Zeitüberschreitung löschen(tid) tid = setzeTimeout(refreshRem, 300) } }, FALSCH ) wenn (doc.readyState === 'abgeschlossen') { doc.body.style.fontSize = 12 * dpr + 'px' } anders { doc.addEventListener( „DOMContentLoaded“, Funktion() { doc.body.style.fontSize = 12 * dpr + 'px' }, FALSCH ) } aktualisierenRem() flexible.dpr = win.dpr = dpr flexible.refreshRem = aktualisierenRem flexible.rem2px = Funktion(d) { var val = parseFloat(d) * this.rem wenn (Typ von d === 'Zeichenfolge' und d.match(/rem$/)) { Wert + = "px" } Rückgabewert } flexible.px2rem = Funktion(d) { var val = parseFloat(d) / dies.rem wenn (Typ von d === 'Zeichenfolge' und d.match(/px$/)) { Wert + = "rem" } Rückgabewert } })(Fenster, Fenster['lib'] || (Fenster['lib'] = {})) Der obige Code unterscheidet sich vom installierten flexible.js Geändert Funktion refreshRem() { var Breite = docEl.getBoundingClientRect().width wenn (Breite / dpr > 540) { Breite = Breite * dpr } var rem = Breite / 10 docEl.style.fontSize = rem + 'px' flexible.rem = win.rem = rem } Importieren in main.js
ZusammenfassenDies ist das Ende dieses Artikels über die Anpassung des Vue-Projekts an den großen Bildschirm. Weitere relevante Inhalte zur Anpassung von Vue an den großen Bildschirm finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Zusammenfassung zum Hinzufügen von Root-Berechtigungen für Benutzer in Linux
>>: MySQL-Fehler 1290 (HY000) Lösung
1. Gehen Sie zunächst auf die offizielle Website,...
Lösung für „Curl-config konnte nicht ausgeführt w...
1. Melden Sie sich bei der MySQL-Datenbank an mys...
Dieser Artikel veranschaulicht anhand von Beispie...
Heute musste ich nach dem Neustart des Spiels fes...
Wenn Sie den Eindruck haben, dass ein Problem mit...
Ich hatte dieses Problem in letzter Zeit beim Desi...
Umsetzungsprinzip Die Hauptgrafik besteht aus zwe...
Beim Entwickeln und Debuggen einer Webanwendung s...
Dieser Artikel zeichnet das Installationstutorial...
eins. Vorwort <br />Sie werden diese Art von...
Vorwort Das MySQL-Modul (Projektadresse ist https...
Ich habe mich vor Kurzem mit Responsive Design be...
Docker: Zookeeper schnell installieren Ich habe Z...
Inhaltsverzeichnis Vorwort 1. Lebenszyklus in Vue...