11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Dans le cas de polices @font-face que j'héberge sur le serveur, puis-je intervenir et comment sur l'ordre de chargement de ces dernières ?
Je travaille sur un thème wordpress premium et le script JS principal du thème se charge 1 fois sur 5 avant une police utilisée sur le menu. Or ce script calcule et redimensionne des éléments qui n'ont pas la même taille suivant la police utilisée. C'est du premium quoi. Donc j'ai le choix entre forcer la police à se charger avant pour que les calculs soient bons, ou tenter un wp_deregister pour recharger le même script mais après que tout ait été chargé réellement.
Modérateur
Salut,

Manhattan a écrit :
Donc j'ai le choix entre forcer la police à se charger avant pour que les calculs soient bons, ou tenter un wp_deregister pour recharger le même script mais après que tout ait été chargé réellement.


Comment les fonts sont elles chargées ? via le JS du theme wordpress ou est ce que c'est en CSS qu'elles sont chargées ?

Là j'ai pas ma boule de cristale (voir mes questions ci dessus), mais à priori j'importe mes polices en css (en base64 ou pas) et j'essaierai. L'idée de tenter un wp_deregister ou autre, tu fais intervenir une requête serveur ou une fonction serveur pour résoudre un problème front. Normalement, ton truc doit fonctionner. Le souci parfois, les templates codés un peu comme ....
Modifié par niuxe (10 Jun 2015 - 21:10)
Elles sont importées en css.
De la seule manière que je connaisse actuellement à savoir :
@font-face {
    font-family: 'playfair_displayitalic';
    src: url('font/playfairdisplay-italic-webfont.eot');
    src: url('font/playfairdisplay-italic-webfont.eot?#iefix') format('embedded-opentype'),
         url('font/playfairdisplay-italic-webfont.woff2') format('woff2'),
         url('font/playfairdisplay-italic-webfont.woff') format('woff'),
         url('font/playfairdisplay-italic-webfont.ttf') format('truetype'),
         url('font/playfairdisplay-italic-webfont.svg#playfair_displayitalic') format('svg');
    font-weight: normal;
    font-style: normal;
}

Mais j'ai solutionné mon problème en changeant quelque-chose : j'utilisais une de mes polices importées directement sur le body pour qu'elle soit par défaut sur l'ensemble du document. Je ne pensais pas que cela puisse poser problème. Vraisemblablement si. Ensuite je n'ai pas mis de code ou proposé d'exemple en ligne, parce qu'un thème premium, c'est jamais vraiment beau à regarder sous le capot.
Modérateur
Manhattan a écrit :
Elles sont importées en css.
De la seule manière que je connaisse actuellement à savoir :
@font-face {
    font-family: 'playfair_displayitalic';
    src: url('font/playfairdisplay-italic-webfont.eot');
    src: url('font/playfairdisplay-italic-webfont.eot?#iefix') format('embedded-opentype'),
         url('font/playfairdisplay-italic-webfont.woff2') format('woff2'),
         url('font/playfairdisplay-italic-webfont.woff') format('woff'),
         url('font/playfairdisplay-italic-webfont.ttf') format('truetype'),
         url('font/playfairdisplay-italic-webfont.svg#playfair_displayitalic') format('svg');
    font-weight: normal;
    font-style: normal;
}

Mais j'ai solutionné mon problème en changeant quelque-chose : j'utilisais une de mes polices importées directement sur le body pour qu'elle soit par défaut sur l'ensemble du document. Je ne pensais pas que cela puisse poser problème. Vraisemblablement si. Ensuite je n'ai pas mis de code ou proposé d'exemple en ligne, parce qu'un thème premium, c'est jamais vraiment beau à regarder sous le capot.


+1 pour le regard sous le capot

Je pensais que le script js insère dynamiquement l'import de police. Ce qui peut poser problème. Je pense (pas essayé) qu'en faisant un import comme : (pas très propre tout ça), ça doit fonctionner.


<body style="@font-face { .... "> ....

*body ou html

Manhattan a écrit :

@font-face {
    font-family: 'playfair_displayitalic';
    src: url('font/playfairdisplay-italic-webfont.eot');
    src: url('font/playfairdisplay-italic-webfont.eot?#iefix') format('embedded-opentype'),
         url('font/playfairdisplay-italic-webfont.woff2') format('woff2'),
         url('font/playfairdisplay-italic-webfont.woff') format('woff'),
         url('font/playfairdisplay-italic-webfont.ttf') format('truetype'),
         url('font/playfairdisplay-italic-webfont.svg#playfair_displayitalic') format('svg');
    font-weight: normal;
    font-style: normal;
}


Oui moi aussi, c'est la manière dont je me sers pour importer une font. Mise à part que je le fais comme ceci désormais :

$webfonts: {
    ma-font,
    mon-autre-font,
    encore-autre-font,
    etc
);
@each $font in $webfonts{
	@font-face {
	    font-family: '#{$font}';	    
		src: url('fonts/#{$font}.eot');
		src: url('fonts/#{$font}.eot?#iefix') format('embedded-opentype'),
		     url('fonts/#{$font}.woff2') format('woff2'),
		     url('fonts/#{$font}.woff') format('woff'),
		     url('fonts/#{$font}.ttf') format('truetype'),
		     url('fonts/#{$font}.svg') format('svg');	
	};
        font-weight: normal;
        font-style: normal;
} 


Si cela t'intéresse d'écrire ainsi, fait un petit tour du côté de SASS et choisit toi un framework tel que Compass ou Less. Je ne connais pas d'autres outils de ce type.
Modifié par niuxe (10 Jun 2015 - 21:46)
J'essaierai l'import pas propre, après tout, là où il y a déjà de la crasse ^^

Concernant sass compass sarass, j'ai essayé, mais même si je ne suis pas contre les évolutions, loin de là, j'aime pas trop l'idée de taper du code pour en générer d'autre qu'en génère un suivant ... J'ai déjà emmet sous brackets + un tas de trucs pour accélérer le travail, j'fais mes copier coller au bouton programmé de souris...bientôt j'aurai une paille pour m’hydrater ^^ et je trouve qu' ayant changé 3 fois d'éditeur en 4 ans relève déjà une problématique sous-jacente.

On critique souvent le langage sms mais en programmation la même philosophie ne nous dérange pas vraiment ^^

Et puis comme je disais lorsque je codais des applications de gestion, l'important c'est d'avantage la compréhension du cœur de métier du client et la réponse qu'on lui apporte que l'outil utilisé au final Smiley smile
Modifié par Manhattan (10 Jun 2015 - 22:00)