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

Drei JavaScript-Methoden zur Lösung des Joseph-Ring-Problems

Inhaltsverzeichnis Überblick Problembeschreibung ...

Reines js, um einen Schreibmaschineneffekt zu erzielen

In diesem Artikelbeispiel wird der spezifische Co...

Erläuterung des Prozesses des Docker-Packaging-Node-Projekts

Als Backend-Programmierer muss ich manchmal an Fr...

Einführung in die Verwendung von Requisiten in Vue

Vorwort: In Vue können Props verwendet werden, um...

Methode zur Wiederherstellung von Betriebs- und Wartungsdaten der MySQL-Datenbank

In den vorherigen drei Artikeln wurden gängige Si...

10 HTML-Tabellen-bezogene Tags

Tatsächlich werden viele Leute sagen: „Ich habe ge...

So stellen Sie Redis in Docker bereit und starten es

Redis im Docker bereitstellen Installieren Sie zu...

CSS3 realisiert das Papierflugzeug aus der Kindheit

Heute werden wir Origami-Flugzeuge basteln (die A...

Automatische Zeilenumbrüche in HTML-Pre-Tags

Zu diesem Zeitpunkt können Sie overflow:auto; verw...

Detaillierte Erklärung der Schritte zum Erstellen eines Vue-Projekts mit Vue-cli

Zuerst müssen Sie Vue-cli installieren: npm insta...