Beispiel für die Anpassung des Vue-Projekts an den großen Bildschirm

Beispiel für die Anpassung des Vue-Projekts an den großen Bildschirm

Eine kurze Analyse von rem

Zunä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

Schriftgröße des Stammelements.

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. Anpassungsmethode

Die 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-exclude

Installnpm 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

importiere 'Pfad/flexible.js'

Zusammenfassen

Dies 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:
  • Beispielcode zur Implementierung der Großbildanpassung auf dem PC mit vue+px2rem (REM-Anpassung)

<<:  Zusammenfassung zum Hinzufügen von Root-Berechtigungen für Benutzer in Linux

>>:  MySQL-Fehler 1290 (HY000) Lösung

Artikel empfehlen

Detaillierte Schritte zur Installation von MySQL 8.0.18-winx64 unter Win10

1. Gehen Sie zunächst auf die offizielle Website,...

So beheben Sie den PyCurl-Fehler unter Linux

Lösung für „Curl-config konnte nicht ausgeführt w...

Detaillierte Erläuterung der MySQL-Remoteverbindungsberechtigung

1. Melden Sie sich bei der MySQL-Datenbank an mys...

Beispiele für die Implementierung und Verwendung von geplanten MySQL-Aufgaben

Dieser Artikel veranschaulicht anhand von Beispie...

Eine kurze Analyse des Kimono-Memo-Problems

Heute musste ich nach dem Neustart des Spiels fes...

Anzeigen und Analysieren des MySQL-Ausführungsstatus

Wenn Sie den Eindruck haben, dass ein Problem mit...

Beispiel für eine Nginx-Cache-Konfiguration

Beim Entwickeln und Debuggen einer Webanwendung s...

mysql 8.0.19 winx64.zip Installations-Tutorial

Dieser Artikel zeichnet das Installationstutorial...

Detailliertes Tutorial zur schnellen Installation von Zookeeper in Docker

Docker: Zookeeper schnell installieren Ich habe Z...

Lassen Sie uns ausführlich über den Vue-Lebenszyklus sprechen

Inhaltsverzeichnis Vorwort 1. Lebenszyklus in Vue...