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

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.11 (Win10)

In diesem Artikel werden die Installations- und K...

Muss MySql ein Commit durchführen?

Ob MySQL bei der Ausführung von Vorgängen wie Ein...

Detaillierte Erklärung des Vue2 Cube-UI-Zeitwählers

Inhaltsverzeichnis Vorwort 1. Anspruch und Wirkun...

Vue+video.js implementiert Video-Wiedergabelisten

In diesem Artikel wird der spezifische Code von v...

HTML 5.1 lernen: 14 neue Features und Anwendungsbeispiele

Vorwort Wie wir alle wissen, gehört HTML5 dem Wor...

Node implementiert Suchfeld für Fuzzy-Abfragen

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung der Funktionsweise der Node.js-Middleware

Inhaltsverzeichnis Was ist Express-Middleware? Vo...

Verwenden Sie momentJs, um eine Countdown-Komponente zu erstellen (Beispielcode)

Heute möchte ich einen Countdown von Vue und Mome...

Was ist Webdesign

<br />Originalartikel: http://www.alistapart...

Versteckter Overhead von Unix/Linux-Forks

Inhaltsverzeichnis 1. Der Ursprung der Gabel 2. F...

JS implementiert das Schlangenspiel

Inhaltsverzeichnis 1. Initialisierungsstruktur 2....