任意一块网页内容实现“活”的背景(目前火狐浏览器专有)

有一个你们可能从未听说的有趣的CSS功能是火狐浏览器独创的-moz-element属性,使用它,你可以用网页上任意的内容作为背景,跟背景图的效果相似。

HTML和CSS代码

假设你的网页里有这样一块HTML内容,它有CSS样式,里面有文本信息,还有一些inline的CSS属性:

复制代码
代码如下:

<div id="mozElementBack"
style="border:1px solid #999;
width: 200px; height: 100px; color: #fff;
background: -moz-linear-gradient(top, #063053, #395873, #5c7c99);">
我要成为背景
</div>

上面的代码既有外部样式,又有inline样式,这不影响-moz-element的使用,现在我们就可以将这块HTML作为其它元素的背景(background):

复制代码
代码如下:

#mySpecialElement {
/* “mozElementBack” 是当前页里某个元素的ID */
background: -moz-element(#mozElementBack) repeat;
}

非常简单,只需要将-moz-element设置成元素的ID,这样,这个元素所包含的区域就会成为背景,你还可以使用background-repeat等参数修饰它,跟普通的背景图的用法一样。但以页面元素做背景的一大亮点是,当你更新背景元素的HTML内容和样式时,背景同步发生变化,也就是说,你可以把它当成一个“活”背景!

一个神奇的CSS属性,不是吗?这种以一块HTML内容做为背景的用途可以非常广泛,感谢Mozilla。你能想出在现实项目中这个功能可以用在什么地方吗?我先想到的一点就是用-moz-element将一段文字做背景,而这些文字是用JavaScript动态写上去的。一个有趣的CSS属性!