Les principales méthodes sont :
Version générale simplifiée :
!(function(win, doc){ function setFontSize() { // Obtenez la largeur de la fenêtre // Voici comment zepto implémente $(window).width() var winWidth = window.innerWidth; // doc.documentElement.style. fontSize = (winWidth / 640) * 100 + 'px' ; // Limiter la largeur au-dessus de 640 nécessite que le CSS corresponde à la taille de la variable = (winWidth / 640) * 100; doc.documentElement.style.fontSize = (size < 100 ? size : 100) + 'px' ; } var evt = 'onorientationchange' dans win 'orientationchange' : 'resize'; minuterie = null; win.addEventListener (evt, fonction () { clearTimeout (minuterie); minuterie = setTimeout(setFontSize, 300 }, false); win.addEventListener(pageshow, function(e) { if (e.persisted) { clearTimeout(timer); timer = setTimeout(setFontSize, 300); } }, false); //Initialiser setFontSize();}(fenêtre, document));Version très précise :
(function(WIN) { var setFontSize = WIN.setFontSize = function (_width) { var docEl = document.documentElement; // Récupère la largeur de la fenêtre actuelle var width = _width || docEl.clientWidth; // docEl.getBoundingClientRect( ). width; // Supérieur à 1080px, appuyez sur 1080 si (largeur > 1080) { width = 1080; } var rem = width / 10; console.log(rem); docEl.style.fontSize = rem + 'px'; // Traitement des erreurs et de la compatibilité var actualSize = win.getComputedStyle && parseFloat( win .getComputedStyle(docEl)[font-size]); if (actualSize !== rem && actualSize > 0 && Math.abs(actualSize - rem) > 1) { var remScaled = rem * rem / actualSize; docEl.style.fontSize = remScaled + 'px'; } } var timer; function dbcRefresh() { clearTimeout(timer); = setTimeout(setFontSize, 100); } //La mise à jour de la fenêtre modifie dynamiquement la taille de la police WIN.addEventListener('resize', dbcRefresh, false); //Calculer une fois lorsque la page est affichée WIN.addEventListener('pageshow', function(e) { if (e.persisted) { dbcRefresh() } }, false) ; setFontSize ();})(window)//Pour les pages push d'activité H5, le rapport largeur et hauteur est requis, et la fonction ajusterWarp(warpId = '#warp') { const $win = $(window); const height = $win.height(); let width = $win.width(); // Considérez la barre de navigation si (largeur / hauteur < 360 / 600) ) { return; } width = Math.ceil(height * 360 / 640); $(warpId).css({ hauteur, largeur, position : 'relative', haut : 0, gauche : 'auto', marge : '0 auto' }); // Recalculer rem window.setFontSize(width);} 2 Définition de rem via les requêtes multimédias CSS3Facile à utiliser mais manque de flexibilité, merci de regarder la démo Vous comprendrez.
@écran multimédia et (min-width : 320px){html{font-size:50px}}@écran multimédia et (min-width : 360px){html{font-size:56.25px}}@écran multimédia et (min- largeur : 375 px){html{font-size:58.59375px}}@écran multimédia et (largeur min : 384px){html{font-size:60px}}@écran multimédia et (largeur min : 400px){html{font-size:62.5px}}@écran multimédia et (largeur min : 414px){html{font- taille : 64,6875 px}}@écran multimédia et (largeur minimale : 424px){html{font-size:66.25px}}@écran multimédia et (largeur min : 480px){html{font-size:75px}}@écran multimédia et (largeur min : 540px){html{font- taille : 84,375 px}}@écran multimédia et (largeur min : 640px){html{font-size:100px}}Elle peut être modifiée de manière appropriée en fonction des besoins du projet personnel et de la conception du produit. La méthode d'écriture de démonstration ci-dessus n'est pas unique et fixe.
Ce qui précède représente l’intégralité du contenu de cet article. J’espère qu’il sera utile à l’étude de chacun. J’espère également que tout le monde soutiendra le réseau VeVb Wulin.