2009-05-06 3 views
0

Как я могу получить значение стиля, определенного в классе CSS?Как получить значение свойства класса 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

У вас нет. Из-за отсутствия реального объяснения CSS - это технология клиентской стороны. Стили в файле .css напрямую не связаны с элементом html до тех пор, пока браузер не отобразит его.

0

Вы не можете этого сделать.

Стили, которые вы объявляете в ASPX, сливаются с выходом, но, насколько мне известно, он не отображается в коде.

Только если вы добавите другие стили в коллекцию, такую ​​как MyControl.Style.Add («font-size», «12px»), вы получите ее там.

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

Вы можете изменить его, если хотите использовать встроенный стиль, иначе вы можете написать собственный объект типа CSS для управления CSS.

На самом деле вы можете построить такую ​​библиотеку, чтобы люди могли загружать и вносить свой вклад, просто говоря.

1

У меня такая же проблема, и я думаю, что может быть какое-то решение, открыв файл .css и выполнив поиск вручную в соответствии с запросом стиля, возвращая его содержимое.

Для этого потребуется ручная разборка, возможно, у вас более одного .css-файла или сложных стилей, которые делают это решение немного ужасным, но я думаю, что это лучше, чем «невозможно».

Мне бы хотелось услышать более элегантное решение.

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]"); 
Смежные вопросы