1

可能重复:
在 CSS 中使用 Javascript

是否可以javascript在 css 中使用代码background
意思是这样的:

样式=“背景:网址(javascript:---javascript代码---);” 这种语法是否有效?

提前致谢

4

3 回答 3

3

你不能在 CSS 中使用 JavaScript。但是,如果您想使用 JavaScript 更改背景图像,则以下行将起作用,

document.getElementById("<element ID>").style.backgroundImage = "url(<url of image>)";
于 2012-05-20T16:34:49.437 回答
2

使用 JavaScript 访问样式属性

你不能你的 CSS 中使用 JavaScript,但你可以使用 JavaScript 来设置你的 CSS 规则。例如:

// Create CSS BackgroundImage Rule
var bg = "url('http://placekitten.com/200/300)";

// Apply Rule
document.getElementById("foo").style.backgroundImage = bg;

使 CSS 中的变量和函数成为可能

此外,还有一系列框架和工具允许您在 CSS 中使用函数和变量,例如SASSLESS

IE 的旧(自 2008 年以来已死)动态属性

CSS 中最接近 JavaScript的是动态属性(在 IE5 中引入),它对跨浏览器的支持非常差,并且在现代版本的 IE 中不再支持。

使用 jQuery 快速轻松地修改 CSS

如果您需要使用 JavaScript 对您的样式进行大量修改,总的来说,人们正在转向采用框架来帮助您解决这个问题。例如,一个流行的框架是 jQuery,它允许执行以下操作:

$("#foo").css('background-color', 'red');

以及通过对象的质量分配:

var color  = "#ffe", 
    border = "5px solid #ccc";

$("#foo").css({ 'background-color': color, 'border-left': border });
于 2012-05-20T16:34:47.327 回答
1

从技术上讲是的,有一个表达式:

background: expression(JS code resulting in a vali background image string here)

但是我认为它只适用于 IE,这是非常糟糕的做法,因为它可能必须每秒重新评估代码数百次。

相反,您应该在那里有一个合适的默认值,然后稍后在页面上使用 JavaScript 来更改它。

于 2012-05-20T16:36:20.453 回答