javascript - 使用 javascript 设置 css 属性在严格模式下不起作用?

标签 javascript css doctype

我很尴尬地承认我找不到符合标准的方法来使用 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/

相关文章:

javascript - HTML5 电子邮件验证避免 js 调用

javascript - 如何创建并排堆叠拱门(形成一个圆圈)的功能?

javascript - 如何检查是否已下载所有 CSS 文件以使用 JavaScript 插入 HTML?

css - 特定浏览器如何防止下载的字体可供其他应用程序使用

C# WriteDocType 生成不正确的 PList 文档类型

javascript - 在 $.each 内的 $.each 中返回 false

css - 为动画光标和内部跨度匹配颜色

html - JSF 2 删除渲染输出中的 xml 声明

css - Bootstrap 文本字段突然缩小

javascript - Rails 3.1 不显眼的 Javascript 与 Flot