如何使用 AngleSharp 从已解析的 html 元素中获取 css 属性

How to get css properties from a parsed html element using AngleSharp

有这个CSS:

.foo { background-size: 10px 20px; }

还有这个Html:

<span class="foo"></span>

而这个 C#:

var parser = new HtmlParser();
var doc = parser.Parse("http://localhost/test.html");
var element = doc.QuerySelector("span.foo");

如何将关联的背景宽度和高度获取到 element

(目前我使用的是 AngleSharp 0.9.9 版本)

首先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;

请记住,如果不存在这样的元素(none 匹配查询),element 可能为 null,并且 GetComputedStyle 方法只能以有限的方式工作。此外,如果您的 CSS 是在外部样式中定义的 sheet,请确保激活资源加载。

希望对您有所帮助!