HTML5技术试验:使用任意一块网页内容做背景
之前在一篇“Vendor Prefix:为什么需要浏览器引擎前缀”文章里,我曾经说过浏览器引擎前缀(Vendor Prefix)一个作用是各浏览器开发者试验自己独创的特殊功能,这些功能特征可能是HTML5标准里还没有纳入的,浏览器用自己的独创特征来影响HTML5标准的制定。这当然是件好事。火狐浏览器和谷歌浏览器就实现了一些有趣的、自己独有的CSS属性,这些属性虽然都很有趣,但要融入标准的HTML5还需要不少时间。有一个你们可能从未听说的有趣的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属性!
阅读余下内容