2011-08-23 5 views
2

J'essaye de comprendre comment faire svgs sans donner à chaque élément un attribut de style.Utiliser css dans svg

Deux problèmes:

Lorsque référence à un fichier CSS externe, le style apparaît correctement dans un navigateur, mais pas dans une visionneuse d'images. Est-ce normal/évitable?

La plupart de mes éléments ont des attributs de classe et id, et ne marche pas css suivantes fournissent l'effet désiré, à savoir, le comté de 21015 ne marche pas avoir son remplissage substituée

.county 
{ 
font-size:12px; 
fill:#d0d0d0; 
fill-rule:nonzero; 
stroke:#000000; 
stroke-opacity:1; 
stroke-width:0.1; 
stroke-miterlimit:4; 
stroke-dasharray:none; 
stroke-linecap:butt; 
marker-start:none; 
stroke-linejoin:bevel; 
} 

path#21015 
{ 
fill:red; 
} 
+1

Cela peut-il être lié au fait que 21015 n'est pas un [nom XML] valide (http://www.w3.org/TR/REC-xml/#NT-Name)? Est-ce que votre CSS fonctionne si vous lui donnez un identifiant commençant par un caractère alphabétique? – sethobrien

Répondre

1

Si le remplissage est pas celui que vous voulez alors il y a probablement quelque chose avec une spécificité plus élevée remplaçant la stylerule que vous voulez, comme un attribut de style en ligne sur cet élément, ou une autre règle affectant cet élément. Vous pouvez également admettre la défaite en écrivant «remplir: rouge! Important» - cela fonctionnera dans la majorité des cas.

De toute façon, il s'agit plus d'une question css qu'une question svg.

0

Ceci est une autre syntaxe ...

dans les balises de définition .. .fil0 {remplissage: # 96989A}

Dans la balise de chemin (s) class = "de fil0"

Les références de classe directes du chemin vers les définitions remplaceront toutes les autres dans mon expérience.