Как получить значение свойства класса CSS в коде позади - PullRequest
0 голосов
/ 07 мая 2009

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

5 голосов
/ 07 мая 2009

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

1 голос
/ 19 мая 2012

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

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

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

0 голосов
/ 17 августа 2016

Вы можете сделать это с помощью 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]");
0 голосов
/ 30 сентября 2009
Me.Menu.Style("margin-top") = "170px"

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

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

0 голосов
/ 07 мая 2009

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

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

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

...