2009-05-06 5 views
0

Comment puis-je obtenir la valeur d'un style défini dans une classe CSS?Comment obtenir une valeur de propriété de classe CSS dans le code

Le balisage a:

CssClass="grdTextBox" Text="aaaaaaaabbbbbbbccccccc" 

Le style CSS est:

.grdTextBox {FONT-SIZE: 12px; FONT-FAMILY: verdana; } 

Le fichier .cs a:

string cssClass = txtComments.CssClass; 
Response.Write(" cssClass is : " + cssClass); 

Comment puis-je trouver la valeur pour la taille de la police ou famille de polices de code derrière?

Je peux les trouver s'ils sont dans une balise de style ou s'ils sont des attributs de la zone de texte. Mais comment pouvez-vous trouver les valeurs si elles sont définies dans une classe CSS?

Répondre

5

Ce n'est pas le cas. Faute d'une véritable explication, CSS est une technologie côté client. Les styles dans le fichier .css ne sont pas directement associés à l'élément html jusqu'à ce que le navigateur le rende.

0

Vous ne pouvez pas le faire.

Les styles que vous déclarez dans ASPX sont fusionnés à la sortie mais ne sont pas visibles dans le code derrière, pour autant que je sache.

Seulement si vous ajoutez d'autres styles à la collection comme MyControl.Style.Add ("font-size", "12px") alors vous l'aurez là.

0

Vous pouvez le modifier si vous voulez utiliser le style en ligne sinon vous pouvez écrire votre propre objet de type CSS pour manipuler CSS.

En fait, vous pouvez construire une bibliothèque comme celle-ci afin que les gens puissent télécharger et contribuer, juste en disant.

1

Je suis confronté au même problème, et je pense qu'il peut y avoir une sorte de solution en ouvrant le fichier .css et en recherchant manuellement le style demandé, en retournant son contenu.

Il faudrait une analyse manuelle, et peut-être vous avez plus d'un fichier .css, ou des styles complexes qui rendent cette solution un peu horrible, mais je pense que c'est mieux que "pas possible".

J'aimerais entendre pour une solution plus élégante.

0

Vous pouvez le faire avec HtmlAgilityPack. Exemple de code:

var doc = new HtmlAgilityPack.HtmlDocument(); 
doc.Load("PageUrl"); 

IList<HtmlNode> nodes = doc.QuerySelectorAll("div .my-class[data-attr=123] > ul li"); 
HtmlNode node = nodes.QuerySelector("p.with-this-class span[data-myattr]"); 
Questions connexes