Прежде всего C# код неправильно. Строка, которую вы передаете parser.Parse
, является кодом HTML, а не URI. Также ваш код не выполняет синтаксический разбор CSS - он использует только парсер HTML. Таким образом, давайте использовать контекст просмотра, чтобы получить все, что вам нужно.
var config = Configuration.Default.WithDefaultLoader().WithCss();
var context = BrowsingContext.New(config);
var document = context.OpenAsync("http://localhost/test.html").Result;
var element = document.QuerySelector("span.foo");
var style = document.DefaultView.GetComputedStyle(element);
var size = style.BackgroundSize;
Имейте в виду, что element
может быть пустым, если такой элемент не существует (ни один соответствующий запрос) и что метод GetComputedStyle
работает только в ограниченном объеме. Также, если ваш CSS определен во внешней таблице стилей, обязательно активируйте загрузку ресурсов.
Надеюсь, это поможет!
Спасибо, после незначительного исправления, получил ваш код. Просто нужно добавить поддержку загрузки документа в конфигурацию следующим образом: 'var config = Configuration.Default.WithDefaultLoader(). WithCss();' иначе тело документа всегда пустое. – SamuGG
Да, действительно (я сосредоточился только на части CSS, поэтому я пропустил все остальное из конфига). Я изменил свой ответ. Спасибо за напоминания! –