我很尴尬地承认我找不到符合标准的方法来使用 Javascript 修改 CSS 属性。或者至少,我认为是这样,原因如下:
以下代码在没有 DOCTYPE 声明的情况下在 Firefox/WebKit 中工作正常,但不适用于指定的文档类型(HTML 4 或 5):
function setWindowSize(width, height) {
console.log("Syncing dimensions:",width,height); // prints correct values
var container = document.getElementById('canvasProxy');
console.log(container); // prints valid element
console.log(container.style); // prints valid object
container.style['width'] = width;
container.style['height'] = height;
console.log(container.style['width'], container.style['height']); // prints empty values
}
其中 Canvas 代理简单定义为:
<div id="canvasProxy"></div>
并且没有与之关联的样式。上述代码在 DOM 加载后才会执行。
style.setProperty 和 style.getPropertyCSSValue 也无法正常工作。那么呃...正确的形式是什么?我要疯了吗?
(我打赌 jQuery 可以很好地处理这个问题,但在这种特殊情况下,我试图将页面大小保持在绝对最小值。)
最佳答案
你没有说你传递的是什么值,或者你认为什么是正确的,但我很可能你传递的是整数而不是长度.
CSS 需要非 0 的长度单位。大多数浏览器将执行错误恢复(与 CSS 规范直接矛盾)并假设你的意思是 px
如果你没有指定一个单位......但仅限于怪癖模式。
关于javascript - 使用 javascript 设置 css 属性在严格模式下不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2157303/