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
Manchmal müssen Sie beim Anfordern bestimmter Sch...
Code kopieren Der Code lautet wie folgt: <meta...
Wenn wir eine Hintergrundfarbe mit Farbverlauf er...
Dinge zu beachten 1. Zunächst müssen Sie im MySQL...
In diesem Artikel erfahren Sie mehr über einen pr...
In einer komplexen Tabellenstruktur erstrecken si...
Hintergrund: Tablespace: Alle INNODB-Daten werden...
Zum Übertragen von Dateien zwischen dem Host und ...
Bevor wir dieses Problem verstehen, schauen wir u...
Inhaltsverzeichnis 1. Projektbeschreibung 1.1 Hin...
Vorwort Das MySQL Slow Query Log ist ein Protokol...
Inhalt dieses Artikels: Seitenhohlmaskenebene, Se...
Inhaltsverzeichnis Gedanken, die durch eine Onlin...
1. Docker durchsucht MySQL查看mysql版本 2. Docker Pul...
Ziehen Sie das Bild: [mall@VM_0_7_centos ~]$ sudo...