具有此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");如何获得与元素相关联的背景宽度和高度
(目前我使用的是AngleSharp版本0.9.9)
发布于 2017-12-12 19:27:19
首先,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是在外部样式表中定义的,请确保激活资源加载。
希望这能有所帮助!
https://stackoverflow.com/questions/41432540
复制相似问题