Récemment, je suis tombé sur un problème CSS énigmatique qui ne se manifestait que sur les vrais appareils mobiles, en particulier iOS Safari. Certaines polices semblaient disproportionnées, perturbant l’intégrité de la mise en page. Essayer de résoudre ce problème en appliquant différentes tailles de police dans les outils de développement, et même en utilisant !important n'a eu aucun effet. Vous pouvez voir ci-dessous l'affichage de l'écran souhaité et l'écran que j'ai fini par voir.
En enquêtant, j'ai découvert que parfois les navigateurs mobiles ajustent dynamiquement la taille des polices pour améliorer la lisibilité pour les utilisateurs. Le comportement de rendu des navigateurs mobiles diffère de celui des navigateurs de bureau. Contrairement aux navigateurs de bureau, qui affichent généralement les pages dans la largeur de l'écran de l'appareil, les navigateurs mobiles utilisent souvent une fenêtre d'affichage plus large, généralement définie sur 980 px par défaut, pour s'adapter aux sites Web qui ne sont pas optimisés pour les écrans plus petits. Cela conduira inévitablement à un défilement horizontal. Pour contrecarrer cela, la règle ci-dessous est couramment utilisée en HTML pour garantir que la fenêtre d'affichage s'adapte avec précision à la taille de l'appareil.
<meta name="viewport" content="width=device-width, initial-scale=1" />
Cependant, lors de la réduction pour s'adapter à un écran mobile, certains navigateurs peuvent rendre le texte trop petit, ce qui incite à l'application d'un algorithme d'inflation de texte pour l'agrandir pour une meilleure lisibilité. Cet algorithme conduit parfois à un agrandissement inattendu de la police, particulièrement visible lorsqu'un élément s'étendant sur toute la largeur de l'écran subit une augmentation de la taille du texte sans altérer la mise en page. Pour résoudre ce problème et maintenir un dimensionnement de texte cohérent sur tous les appareils, nous pouvons utiliser la propriété CSS text-size-adjust.
L'ajustement de la taille du texte permet aux auteurs Web de désactiver ou d'ajuster ce comportement d'inflation automatique du texte, particulièrement crucial pour les sites Web conçus pour les petits écrans (ce que sont, je crois, la majorité des nouveaux sites Web). Cette propriété contrôle l'algorithme d'inflation du texte utilisé sur certains smartphones et tablettes. Les autres navigateurs l'ignoreront. L'ajustement de la taille par défaut affecte le texte et les contrôles de formulaire, que ces contrôles de formulaire contiennent du texte (par exemple, entrées de texte, sélections) ou non (par exemple, boutons radio, cases à cocher).
Il a 3 valeurs possibles :
J'ai résolu le problème d'inflation du texte en ajoutant cette propriété au corps dans le cadre de nos styles CSS globaux (peut également être ajoutée au HTML). Je recommande d'ajouter cette règle à votre fichier CSS global/reset/normalize :
body { // prevent font-size inflation on small devices text-size-adjust: 100%; -ms-text-size-adjust: 100%; -moz-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
Pour iOS Safari uniquement, -webkit-text-size-adjust fonctionne mais j'ai inclus d'autres fournisseurs et une propriété non-fournisseur pour ajouter la prise en charge d'autres navigateurs. Il est très important d'ajouter la propriété non-fournisseur au début. S'il est ajouté à la fin, dans Safari iOS, il remplacera celui de -webkit et comme il n'est pas pris en charge, il ne sera pas appliqué, donc les choses fonctionneront par défaut.
Quelques autres considérations à garder à l’esprit :
Plusieurs bibliothèques de réinitialisation/normalisation CSS populaires intègrent certaines variantes de l'ajustement de la taille du texte.
Merci d'avoir lu !? Voici des ressources supplémentaires si jamais vous avez envie d’en savoir plus à ce sujet.
drafts.csswg.org
référence web
developer.apple.com.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!