2017-08-28 3 views
0

J'ai mis ma page css:AmCharts Hériter police ou un ensemble tous les éléments de la police

html { 
    font-family: 'Not the Default AmCharts Font'; 
} 

Je n'ai pas spécifié une police dans mon code graphique, mais les graphiques ne sont pas héritant de la police définie css de la page .

Existe-t-il un moyen de définir globalement la police pour tous les éléments Amcharts en une fois? Quelque chose comme:

AmCharts.defaultFontFamily = 'Not the Default AmCharts Font'; 

je serais aussi heureux avec une sorte de solution jQuery comme:

$('.amcharts').find('*').css('font-family', 'Not the Default AmCharts Font'); 

Aucune de ces solutions fonctionnent.

Je voudrais vraiment comme ça d'avoir un impact au moins les éléments suivants: graphique Titre , Titres Haches , Étiquettes Haches, graphique Étiquettes , ballon texte , Légende Étiquettes , Légende Valeurs

Répondre

1

Depuis AmCharts utilise les styles en ligne et les attributs, vous aurez probablement besoin d'utiliser !important pour remplacer les polices

.yourchartclass * { 
    font-family: 'Impact' !important; 
} 

Une autre façon d'aller à ce sujet est t o tirer parti de la méthode AmCharts.addInitHandler pour créer un programme d'écoute global init qui s'exécute sur autant de types de graphiques que vous le souhaitez et qui définit les propriétés fontFamily et autres lors de l'initialisation. Par exemple:

AmCharts.addInitHandler(function(chart) { 
    chart.fontFamily = 'Oswald'; 
    chart.fontSize = 16; 
}); 

Vous pouvez également spécifier un tableau de types de graphiques pour limiter ce que l'initHandler peut fonctionner. Vous pouvez également ajouter des drapeaux personnalisés à votre objet graphique et les utiliser pour déterminer les paramètres que vous souhaitez définir, par exemple:

AmCharts.addInitHandler(function(chart) { 
    if (chart.useLato) { 
    chart.fontFamily = "Lato"; 
    chart.fontSize = 16; 
    } else if (chart.useRoboto) { 
    chart.fontFamily = "Roboto"; 
    chart.fontSize = 12; 
    } else { 
    chart.fontFamily = "Oswald"; 
    chart.fontSize = 12; 
    } 
}); 

Voici un demo de cela en action.

+0

Fantastique! J'avais déjà essayé le override de css de '! Important ', qui ne fonctionnait pas, mais le gestionnaire d'initialisation était parfait. –

+1

Étrange, '! Important' a fonctionné pour moi pendant que j'expérimentais avec le codepen. Vous pouvez également vous référer à la liste des [noms de classes CSS] (http://www.amcharts.com/tutorials/css-class-names/) générées par les graphiques (vous devez définir 'addClassNames' sur true) et suivez cette route pour styliser les éléments de texte directement si vous préférez le faire via CSS. – xorspark