【发布时间】:2020-01-27 10:33:40
【问题描述】:
我想获得一个元素被聚焦时的计算样式。我正在使用 puppeteer,我想将焦点前的 CSS 与焦点后的 CSS 进行比较。我可以使用element.focus() 成功地将焦点集中在一个元素上,并且可以通过检查活动元素(document.activeElement)来确认它是焦点。但是,该元素的计算样式 (getComputedStyle()) 与焦点之前的样式相同,这不是我的预期。
有没有办法获取焦点后元素的CSS?
明确地说,我正在编写一个 JavaScript 工具,它可以抓取任何网站以检查焦点元素的轮廓或边框是否与页面上的背景有足够的对比(这样它符合可访问性指南 https://www.w3.org/WAI/WCAG21/Understanding/non-text-contrast.html )。为此,我需要能够在元素处于焦点时获得轮廓/边框的颜色。通常,焦点轮廓将在:focus { ... } 下的 CSS 中定义,所以这是我希望为任何元素检索的内容。
【问题讨论】:
-
据我所知,焦点更像是元素状态而不是样式。 java2s.com/Tutorials/Javascript/Javascript_Reference/…
-
你希望css在聚焦之后变成什么?
-
一种常见的情况是边框或轮廓在选定元素上变为蓝色。这是我所期望的。 @GetSet
-
@demkovych 有没有办法在元素处于该状态时检索元素的样式?例如处于焦点状态时,按钮的轮廓可能会变为蓝色。但是当我在那个状态下得到那个元素的计算样式时,样式并没有说轮廓是蓝色的。
-
您好,我在下面的回答 (stackoverflow.com/a/59944379/9060223) 有帮助吗?
标签: javascript html css focus puppeteer