6
votes

Puis-je lire le contenu d'un runtime de classe CSS en code derrière?

J'ai une page avec un fichier .CSS lié à celui-ci. Disons qu'il y a ce contenu, il y a ce contenu:

.wrapper {
 color:red;
}


2 commentaires

Autant que je sache, nous ne pouvons pas obtenir la valeur dans CSSClass du code derrière. Mais nous pouvons obtenir le nom CSSClass ou ajouter un Cssclass avec différentes propriétés.


Peut-être que vous pourriez obtenir par jQuery quelque chose comme $ (y votreélement) .getyle ('couleur')


5 Réponses :


0
votes
<script type="text/javascript">
     window.getComputedStyle = window.getComputedStyle || function (element) { return element.currentStyle; };

     window.onload = function () {
          var dummy = document.createElement("span");
          dummy.className = "wrapper";
          document.getElementsByTagName("body")[0].appendChild(dummy);
          document.getElementById("<%= WrapperColorHiddenField.ClientID %>").value = getComputedStyle(dummy).color;
          document.getElementsByTagName("body")[0].removeChild(dummy);
     }
</script>
The drawback of that solution is that you need to parse returned value: in IE red value returned whereas in Chrome returned rgb(255,0,0)

0 commentaires

1
votes

c'est délicat

au côté client sa possible,

Ajouter un élément caché à la page et attribuer la classe et ensuite, vous pouvez facilement obtenir des propriétés CSS de l'élément DOM à l'aide de jQuery. xxx

au côté serveur Si vous souhaitez obtenir les valeurs du fichier CSS ,
Cochez cette case http://www.codeproject.com/kb/recipes/cssparser.aspx

Salutations, NJ


0 commentaires


3
votes

Je suppose que vous aurez le chemin (physique ou virtuel) au fichier CSS que vous liez.

Si c'est un fichier sur le serveur Web, vous pouvez le charger dans un fichier texte ou s'il est sur un serveur distant, vous pouvez utiliser un XMLHTTPQUEST pour aller et l'obtenir. P>

Une fois que vous avez Le corps du fichier chargé, le REG-EX suivant analysera le fichier, détectera la classe d'emballage et cueille la valeur de la clé de couleur dans le premier groupe de la correspondance. P>

    var inputfileReader = new StreamReader("path to my css file");
    string inputLine = inputfileReader.ReadToEnd() ;
    inputfileReader.Close();

    Regex cssParser = new Regex(@"\.wrapper[\s|\S]*color\s*:\s*([^;]*);");

    string myCssClass = string.Empty; ;
    if (cssParser.Match(inputLine).Groups[1] != null)
        myCssClass = cssParser.Match(inputLine).Groups[1].Value;


0 commentaires

0
votes

à la clientèle de la clientèle avec les classes CSS est toujours possible. Vous pouvez accéder à n'importe quelle classe du côté du client. Vous pouvez également ajouter un champ caché ou y accéder. Utilisez jQuery: xxx

si vous pouvez être plus clair avec les exigences que je peux fournir une solution.


0 commentaires