javascript - document.body.style.backgroundColor 不适用于外部 CSS 样式表

标签 javascript html css

<分区>

谁能告诉我为什么 document.body.style.backgroundColor 不能与外部 CSS 样式表一起使用? 我的意思是:当我有

body
{
    background-color: red;   
}

在我的 css 样式表中 javascript alert alert(document.body.style.backgroundColor); 显示空字符串。 工作示例 here .

但是当我有

<body style="background-color: red;"></body>

它显示(因为它应该)“红色”。 示例 here .

我会很感激一个很好的解释,甚至更多的答案如何修复第一个例子。

最佳答案

DOM 元素上的

.style 属性返回 CSSStyleDeclaration对于那个特定的元素。根据 .style 访问的定义,它是元素本身的样式。 style= 属性控制相同的值,这样你就看到了结果。

但是,使用选择器应用的 CSS 并不直接是元素的属性。考虑 CSS p { color: red } 。此 CSS 适用于多个元素,因此,在特定元素的级别上可覆盖是没有意义的。

您正在寻找的是 window.getComputedStyle 以获取元素当前样式的只读 View :确实是 window.getComputedStyle(document.body).backgroundColor返回正确的值,如 updated Fiddle 中所示.

关于javascript - document.body.style.backgroundColor 不适用于外部 CSS 样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26074476/

相关文章:

javascript - 如何将 JSON 值从 Controller 传递到 Thymeleaf 中的 HTML?

javascript - 如何通过html标签显示多行变量

javascript - 将元素推到父级的底部

android - 如何使用 pixate (android) 设置按钮样式

javascript - 自动完成多选字段,结果显示在下面的 div 中

javascript - JavaScript 客户端和 Netty 服务器之间的安全 WebSocket 连接

javascript - 使用 JS 单击时不显示表单

javascript - 使用 Javascript 将 CSS "margin-"规则最小化为一个 "margin:"规则

html - 按从左到右的顺序将 div float 到右侧?

javascript - MacOS 上的 Grunt 通知失败