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属性!

阅读余下内容
 

发表评论

电子邮件地址不会被公开。 必填项已用*标注


京ICP备12002735号