- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于IE8不支持getCompulatedStyle
,我们只能使用currentStyle
。但是,它不会返回某些属性的真实“计算”值。
例如:
<style type="text/css">
#div {/* no properties are defined here */}
</style>
<div id="div">div</div>
// returns "medium" instead of 0px
document.getElementById('div').currentStyle.borderLeftWidth
// returns "auto" instead of 0px
document.getElementById('div').currentStyle.marginLeft
// returns "undefined" instead of 1
document.getElementById('div').currentStyle.opacity
是否有人可以在不使用 jQuery 或其他 Javascript 库的情况下为所有属性提供跨浏览器解决方案?
最佳答案
这是一个跨浏览器函数来获取计算样式...
getStyle = function (el, prop) {
if (typeof getComputedStyle !== 'undefined') {
return getComputedStyle(el, null).getPropertyValue(prop);
} else {
return el.currentStyle[prop];
}
}
您可以将其作为实用程序存储在对象中,或者仅按提供的方式使用它。这是一个示例演示!
// Create paragraph element and append some text to it
var p = document.createElement('p');
p.appendChild(document.createTextNode('something for fun'));
// Append element to the body
document.getElementsByTagName('body')[0].appendChild(p);
// Set hex color to this element
p.style.color = '#999';
// alert element's color using getStyle function
alert(getStyle(p, 'color'));
查看此演示以查看其实际效果:
getStyle = function(el, prop) {
if (getComputedStyle !== 'undefined') {
return getComputedStyle(el, null).getPropertyValue(prop);
} else {
return el.currentStyle[prop];
}
}
// Create paragraph element and append some text to it
var p = document.createElement('p');
p.appendChild(document.createTextNode('something for fun'));
// Append element to the body
document.getElementsByTagName('body')[0].appendChild(p);
// Set hex color to this element
p.style.color = '#999';
// alert element's color using getStyle function
console.log(getStyle(p, 'color'));
p {
color: red;
}
关于javascript - 跨浏览器(IE8-)getCompulatedStyle 与 Javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15733365/
我在 JavaScript plugin 中找到了这个 getCompulatedStyle polyfill if (!computed) { window.getComputedStyle =
我有某种形式。我需要检查此表单中所有元素的背景颜色。但在某些元素中,颜色由 定义。 ,另一个元素颜色由 css 定义。我需要将两个方法合并为一个(在 Selenium IDE 中) 这是我的方法:
我正在制作 HTML 文本解析器,我希望能够确定文本节点何时显示为标题(视觉上,而不是 HTML 标题)。 关于标题通常可以说的一件事是它们被强调 - 通常以两种方式之一:粗体字体或更大的字体大小。
由于IE8不支持getCompulatedStyle,我们只能使用currentStyle。但是,它不会返回某些属性的真实“计算”值。 例如: #div {/* no properties are
getComputedStyle 的结果包含一个名为“margin”的属性,但该属性在 Mozilla Firefox 或 Apple Safari 中始终为空字符串 ("");然而,在 Intern
我正在尝试使用以下解决方法来解决隐藏的 iframe/getCompulatedSytle firefox bug 548397 . if (/firefox/i.test(navigator.use
我们知道,通过 window.getComputedStyle() 方法,我们可以获得特定元素的计算样式。 (参见https://jsfiddle.net/r7sgpyt5/1/)。我的问题是,我们如
我的问题特定于 getCompulatedStyle 方法。 ie9 支持 getComputedStyle ,但不支持 getCompulatedStyle 的伪元素。通常我会使用这样的支票。 if
我有一些 JavaScript 代码来查找文本并将其替换为图像。然后,我收集原始文本的字体大小并使用它来设置新图像的大小。 问题是,我不断收到错误:无法转换 JavaScript 参数 arg 0 [
我已经能够让 Highstock 在示例 html 文件中工作,但在我正在处理的应用程序中,相同的 Highstock 代码加载部分路径,然后抛出错误:jQuery 1.5.1 未压缩代码(getCo
我编写了一个基于 material-ui Button 的自定义按钮 (MyStyledButton)。 import React from "react"; import { Button }
我是一名优秀的程序员,十分优秀!