如何在代码后面获取CSS类属性值

时间:2009-05-06 20:38:23

标签: c# asp.net css stylesheet

如何获取CSS类中定义的样式的值?

标记有:

CssClass="grdTextBox" Text="aaaaaaaabbbbbbbccccccc"

CSS样式是:

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

.cs文件包含:

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

如何从代码后面找到字体大小或字体系列的值?

如果它们在样式标记中或者它们是文本框的属性,我可以找到它们。但是如果它们是在CSS类中定义的,那么如何找到它们呢?

5 个答案:

答案 0 :(得分:5)

你没有。由于缺乏真正的解释,CSS是一种客户端技术。在浏览器呈现之前,.css文件中的样式不直接与html元素相关联。

答案 1 :(得分:1)

我面临同样的问题,我认为通过打开.css文件并手动搜索所请求的样式并返回其内容,可以有一种解决方案。

这需要手动解析,也许你有多个.css文件,或者复杂的风格让这个解决方案有点可怕,但我认为它比#34;更不可能"

我很想听听更优雅的解决方案。

答案 2 :(得分:0)

你不能这样做。

您在ASPX中声明的样式将合并到输出中,但据我所知,它在后面的代码中不可见。

只有当您向集合中添加其他样式(如MyControl.Style.Add(“font-size”,“12px”))时,您才能拥有它。

答案 3 :(得分:0)

Me.Menu.Style("margin-top") = "170px"

如果要使用内联样式,可以更改它,否则可以编写自己的CSS类型对象来操作CSS。

实际上你可以建立一个这样的图书馆,以便人们可以下载和贡献,只是说。

答案 4 :(得分:0)

你可以用HtmlAgilityPack来做。示例代码:

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]");