2010-03-09 8 views
4

J'utilise Cufon pour charger de jolies polices avec javascript. Et, comme je l'ai beaucoup des tags, j'utiliser l'instruction suivante pour remplacer tous les tags:Exclusion de certaines balises du système Cufon Font

Cufon.replace('*', { fontFamily: 'MyFont' }); 

Mais, j'ai récemment décidé d'exclure certaines classes d'étiquette du remplacement. Y at-il une instruction comme:

Cufon.exclude('TheClassToExclude'); 

?

Répondre

15

L'utilisation de * en tant que sélecteur est une très mauvaise idée. Pour un, il faudra pour toujours pour charger la page et exécuter le script, car Cufon bloque le navigateur pendant qu'il dessine. Deuxièmement, votre texte ne sera pas visiblement sélectionnable, selon le navigateur. (Pour l'instant, FF3.6 n'affiche pas les sélections sur le texte Cufon)

Mais pour répondre à votre question, vous pouvez dire à cufon de définir certaines classes, il suffit d'ajouter les classes aux éléments que vous voulez dessiner par Cufon, plutôt que l'inverse.

Cufon.replace('h2.cufon', { fontFamily: 'MyFont' });

Edit:

vient de découvrir que si vous utilisez une bibliothèque Javascript comme jQuery, vous pouvez utiliser un sélecteur différent pour exclure les éléments.

Cufon.replace('h2:not(.nocufon)', { fontFamily: 'MyFont' });

Cela remplacerait tous les éléments H2 avec le texte Cufon, sauf ceux qui ont la classe nocufon.

+2

Je dirais que C'est une très mauvaise idée pourrait être euphémisme de la journée. Je suis d'accord avec vous complètement, faire du cufon (ou quelque chose comme ça) sur l'ensemble de votre texte est une idée absolument horrible. –

+0

Tout à fait vrai. Notez que j'ai ajouté une autre façon d'accomplir ce que vous avez décrit, OP. –

0

Vous pouvez utiliser '>' si nécessaire pour sélectionner une classe élément/élément exacte. J'utilise ainsi sur un site pour sélectionner tous drupal le niveau 2 liens de la barre latérale,

« # barre latérale gauche .menu-niveau 2> ul.menu> li> un »