J'essaie d'utiliser Myriad Pro comme ma police principale avec Arial et telle qu'une chute de retard, comme: Je veux modifier la taille de la police quand Arial ou Helvetica sont sélectionnés. C'est ce que j'ai dans jQuery mais cela ne fonctionne pas: p> J'apprécie votre temps, votre aide et votre générosité :) P> P>
7 Réponses :
Vous ne pouvez pas détecter quelle police est utilisée pour rendre le texte. Le style n'est pas changé en fonction de quelles polices sont disponibles. P>
Ce que vous pouviez faire est de mesurer la taille d'un élément contenant du texte et de cela découpez quelle police pourrait être utilisée pour rendre le texte. P>
(Considérez également que le paramètre utilisateur pour la taille de la police peut également affecter la manière dont elle est rendue.) p>
Ma solution est le long des lignes de ce que @guffa suggère, mais je créerais un couple de différents, peut-être même caché si cela fonctionne dans tous les navigateurs, des conteneurs avec le même texte. Utilisez des classes pour définir la police sur les différentes combinaisons - une avec, une sans Myriad Pro. Comparez les hauteurs de ces deux conteneurs. S'ils sont les mêmes, vous savez que cela est rendu avec les polices de secours. Dans safari 4, j'ai 16 ans et 15, respectivement.
Exemple: P>
<style type="text/css"> .myriad { font: 13px "Myriad Pro", "Helvetica", "Arial", "sans-serif"; display: none; } .arial { font: 13px "Arial", "sans-serif"; display: none; } </style> <script type="text/javascript" language="javascript" src="jquery/jquery.js"></script> <script type="text/javascript"> $(document).ready(function() { var mHeight = $('.myriad').height(); var aHeight = $('.arial').height(); alert( 'M: ' + mHeight + ' ' + 'A: ' + aHeight ); }); </script> <p class="myriad"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla non purus et tortor rhoncus ultricies. </p> <p class="arial"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla non purus et tortor rhoncus ultricies. </p>
JavaScript n'a pas de manière officielle de détection de polices, mais cette bibliothèque est une solution de contournement décente: http://www.lalit.org/lab/javascript-csss-font-detect
Utilisation de ce détecteur, vous pouvez ensuite utiliser: P>
$(function(){ var fontDetector = new Detector(); if(fontDetector.test('Arial')){ $('body').css('font-size', '10px'); } });
Je vais aussi regarder cela aussi, merci!
if($("body").css("font-family").indexOf("Arial") > -1 || $("body").css("font-family").indexOf("Helvetica") > -1) { $("body").css("font-size", "12px"); } This works perfectly. I don't know why the guy who posted it chose to delete it..Edit: NickFitz is correct as it indeed does not work. Silly me, got excited and overlooked the wrong changes it was making.
Je pense que l'index du traite comme une matrice et trouve ainsi un résultat correspondant? Mais qu'en est-il de la partie "> -1"?
Je pense qu'il l'a supprimé parce que ça ne marche pas. Comme votre chaîne de famille de polices comprend à la fois Arial et Helvetica, IndexOf retournera toujours une valeur> -1 et votre taille de police sera toujours définie sur 12px. Sur votre page exemple, réglez la taille de la police sur quelque chose de stupide comme 24px dans CSS et de voir cette fonction réinitialiser à 12px. Sinon, cela ne fonctionne que dans le navigateur que vous testez, mais je ne pense pas que cela fonctionnera dans N'importe quel navigateur i>. "indexof" est une méthode de chaîne documentée dans un certain nombre d'endroits, tels que développeur.mozilla.org/fr/core_javascript_1.5_Reference/...
L'exemple de TVANFosson fonctionne réellement. Vous devrez utiliser la largeur au lieu de la hauteur pour comparer les polices. Vous voudrez également faire la deuxième police de la liste de polices ARIAL (ou quelle que soit la police d'automne que vous souhaitez utiliser). Après cela, comparez simplement les largeurs et si elles sont identiques, vous saurez qu'il utilise ARIAL dans les deux cas: i Utilisez ceci pour charger éventuellement une feuille de style différente qui utilisera une taille de police différente si Segoe n'est pas disponible. La raison étant que Segoe UI est trop petit à 11px et les deux autres polices sont trop grandes à 12px. Étant donné que Segoe Ui et Lucida Grande ont une meilleure lisibilité, j'essaie d'utiliser ces premiers. En les comparant à Arial, je sais s'ils sont présents sur le système, grâce à TVANFosson. P> P>
Une fonction de jQuery très simple: échantillon: p>
Tout ce que j'ai lu sur cette page si loin Terriifie moi! Je suis préoccupée par la graphique de tailles de texte, un comportement étrange du navigateur, un désalignement partout en raison des conditions de course avec une autre dimension d'éléments basée sur des tailles.
Le problème sous-jacent est que différentes polices ont des tailles différentes, même pour la même taille des points. - Vous devez donc comprendre comment différentes polices se comportent pour voir s'ils sont dans des tolérances acceptables. P>
Je suis venu avec le testeur de polices FIXTIG et SALLY. Il suffit de le coller en haut de votre page Web à l'intérieur de la balise N'oubliez pas si vous avez des portions de votre page plus critiques, essayez d'utiliser ARIAL pour ces sections. p> Testez-le sur jsfiddle.com <- Cliquez sur les noms de polices rouges dans la zone située en bas à droite p> p>