如何获取元素's”;指定的“;样式而不是计算样式
How to get an element's "specified" style instead of computed style
在不包含viewport
元标记的网页上,大多数移动浏览器会将页面上的部分或全部字体"提升"到大于css指定的大小。例如,在移动Safari上,指定大小的7px
将被提升到类似12px
的大小。
您可以使用getComputedStyle读取提升后的值。我的问题是,是否有可靠的方法来读取未增强值?也就是说,如果字体增加到12,我想知道它是从7开始的。
Webkit有一个不推荐使用的函数来获取元素的所有样式表规则:window.getMatchedCSSRules(<<element>>)
。您可以使用它来获取规则列表,并在其中循环以打印或处理每个规则的属性。您还需要考虑元素的style
属性。
要处理font-size
场景,我想最好的方法是获取适用于元素的所有规则,按优先级对它们进行排序(记住要考虑style
属性和!important
标志,然后选择值。
不过,这并不完全可靠,因为它是一个Webkit函数,而且正在退出。这里有很多关于如何制定规则的讨论。一旦你有了元素的规则,你只需要挑选出你需要的特定信息。
这里只是一个快速答案。简而言之:你不能用今天的API获得指定的样式。我能够通过使用文本大小调整(前缀为-webkit-用于Safari)暂时关闭字体增强功能来解决我的特定问题。
相关文章:
- 如何获取当前元素的计算样式
- 如何获取元素's”;指定的“;样式而不是计算样式
- 后台位置的计算样式在Chrome中返回0%0%
- 设置/复制javascript计算样式从一个元素到另一个元素
- 如何获取html标签的计算样式值,然后将值设置为“样式”
- 是否可以从外部样式表中获取 dom 元素的特定 css 属性的值,而不是从计算的样式表中获取
- Javascript:将内联样式添加到页面中具有特定计算样式属性的元素
- Shopify (液体) 计算选择和更改样式中的选项大小
- 将计算结果设置为ng样式标签Angular.js的百分比
- 创建可重复使用的运行时计算的样式表样式
- javascript无法获得类的计算样式
- 如何获得HTML元素的最终计算样式值
- 如何返回外部样式表类应用于元素的所有CSS属性(不获取计算样式!)
- IE10只给了我一个'无法计算表达式'更改样式时出错
- 更改设备方向后捕获重新计算的样式
- 强制IE重新计算样式
- 获取元素的所有计算样式
- 背景图像的内联样式是在DOM中计算从"onbeforeunload"事件
- 为具有特定计算css属性值的元素数组设置样式
- 如何从元素中删除所有继承和计算样式